admin

SQL-检查列是否自动递增

sql

我正在尝试运行查询以检查列是否自动增加。我可以检查类型,默认值,是否可以为空等,但是我不知道如何测试它是否自动递增。这是我测试其他内容的方式:

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可比较的列。那么,如何测试列是否自动递增?


阅读 172

收藏
2021-05-10

共1个答案

admin

对于MySql,请检查以下列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.columnsis_identity列:

SELECT 
    is_identity
FROM sys.columns
WHERE 
    object_id = object_id('my_table')
    AND name = 'my_column'
2021-05-10