• MySql SqlServer Sqlite中关于索引的创建


    最近要更新Cocon90.Db库,令其ORM创建表时实现索引的添加。因此总结下列常用Sql,供大家学习与参考。

    一、SqlServer中创建索引可以这样:

    if not exists (select * from sysobjects where id = object_id('{0}') and OBJECTPROPERTY(id, 'IsUserTable') = 1) Create Table Test (
      RowId VARCHAR(36) NOT NULL,
      Name VARCHAR(255) NOT NULL ,
      Type int NULL,
      PRIMARY KEY (RowId,Name),
      INDEX idxType(Type),
      INDEX idxName(Name)
    );

    二、MySql中需要这样:

    CREATE TABLE IF NOT EXISTS Test (
      RowId VARCHAR(36) NOT NULL,
      Name VARCHAR(255) NOT NULL ,
      Type int NULL,
      PRIMARY KEY (RowId,Name),
      INDEX idxType(Type),
      INDEX idxName(Name)
    );

    三、Sqlite中需要这样:

    CREATE TABLE IF NOT EXISTS Test (
      RowId VARCHAR(36) NOT NULL,
      Name VARCHAR(255) NOT NULL ,
      Type int NULL,
      PRIMARY KEY (RowId,Name)
    );
    create index IF NOT EXISTS idx3 on Test(Type);
    create index IF NOT EXISTS idx2 on Test(Name);

    四、SqlServer中有则删除索引,无则创建索引的常用语句有:

    Create Index idxType on Test (Type,Name)
    with (drop_existing = on);
    
    或者
    
    IF Not EXISTS(SELECT * FROM sys.indexes WHERE object_id = object_id('Test') AND NAME ='idxType1')
    CREATE INDEX [idxType1] ON Test(Type,Name);

    五、Sqlite中无则创建索引的常用语句有:

    create index IF NOT EXISTS idx3 on Test(Type);
    create index IF NOT EXISTS idx2 on Test(Name);

    六、MySql中对于无则创建索引的常用语句有:

    DROP PROCEDURE IF EXISTS schema_change;
    CREATE PROCEDURE schema_change() BEGIN
      IF NOT EXISTS (SELECT * FROM information_schema.statistics WHERE table_schema=database() AND table_name = 'Test' AND index_name = 'idxType')
      THEN   ALTER TABLE `Test` ADD INDEX `idxType` ( `Type` ); END IF;
    END;  CALL schema_change(); DROP PROCEDURE IF EXISTS schema_change;
  • 相关阅读:
    python --异常处理
    Python -- 函数对象
    python --循环对象
    python --循环设计
    python --模块
    python --文本文件的输入输出
    xpee.vbs
    oracle 有个xe版本
    POI对Excel单元格进行颜色设置
    POI进行ExcelSheet的拷贝
  • 原文地址:https://www.cnblogs.com/songxingzhu/p/6813922.html
Copyright © 2020-2023  润新知