Подтвердить что ты не робот

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. Итак, как я могу проверить, увеличивается ли количество столбцов?

4b9b3361

Ответ 1

Для 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 используйте столбец sys.columns и is_identity:

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

Ответ 2

Предполагая, что MySQL, столбец EXTRA будет указывать, является ли это AUTO_INCREMENT.

| TABLE_CATALOG | TABLE_SCHEMA | ... |          EXTRA | ... |
-------------------------------------------------------------
|           def |   db_2_00314 | ... | auto_increment | ... |

И для MSSQL см. здесь.

Ответ 3

это работает для сервера sql:

    Select COLUMN_NAME, TABLE_NAME
    from INFORMATION_SCHEMA.COLUMNS
    where TABLE_SCHEMA = 'dbo'
    and COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1
    order by TABLE_NAME

Ответ 4

Запустить: описать 'table_name'; В колонке EXTRA вы ищете