我正在尝试运行查询以检查列是否自动增加。我可以检查类型,默认值,是否可以为空等,但是我不知道如何测试它是否自动递增。这是我测试其他内容的方式:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'my_table' AND COLUMN_NAME = 'my_column' AND DATA_TYPE = 'int' AND COLUMN_DEFAULT IS NULL AND IS_NULLABLE = 'NO' --AND AUTO_INCREMENTS = 'YES'
不幸的是,没有AUTO_INCREMENTS可比较的列。那么,如何测试列是否自动递增?
AUTO_INCREMENTS
对于MySql,请检查以下列EXTRA:
EXTRA
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'my_table' AND COLUMN_NAME = 'my_column' AND DATA_TYPE = 'int' AND COLUMN_DEFAULT IS NULL AND IS_NULLABLE = 'NO' AND EXTRA like '%auto_increment%'
对于Sql Server,请使用sys.columns和is_identity列:
sys.columns
is_identity
SELECT is_identity FROM sys.columns WHERE object_id = object_id('my_table') AND name = 'my_column'