SQL - pour Vérifier si une colonne auto incrémente
Je suis en train de lancer une requête pour vérifier si une colonne auto-incréments. Je peux vérifier le type, la valeur par défaut, si c'est de prendre la valeur null ou pas, etc. mais je ne peux pas comprendre comment tester si l'auto incrément. Voici comment je suis en train de tester pour ceux d'autres choses:
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'
Malheureusement, il n'existe pas de AUTO_INCREMENTS
colonne à comparer. Alors, comment puis-je tester si une colonne auto incrémente?
Qui SGBD que vous utilisez? PostgreSQL? SQL Server? MySQL?
SQL Server et MySQL.
SQL Server et MySQL.
SHOW CREATE TABLE my_table
OriginalL'auteur Aust | 2012-12-07
Vous devez vous connecter pour publier un commentaire.
Pour MySql, Vérifiez dans le
EXTRA
colonne:Pour Sql Server, utilisez
sys.columns
et lais_identity
colonne:OriginalL'auteur Michael Fredrickson
En supposant que MySQL, le
EXTRA
colonne indique si elle estAUTO_INCREMENT
.Et pour MSSQL, voir ici.
OriginalL'auteur Kermit
Exécuter: décrire les "table_name"; Dans la colonne SUPPLÉMENTAIRE est ce que vous recherchez
OriginalL'auteur Johny
cela fonctionne pour sql server:
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
Je sais que peu datée, mais pour ceux qui cherchent historiquement et vous demandez-vous, je peux vous confirmer que cette solution fonctionne si vous ne souhaitez pas accéder au schéma sys.
OriginalL'auteur Dalkiel