sql >> Databasteknik >  >> RDS >> Mysql

Hur man hittar namnet på en begränsning i MySQL

Problem:

Du vill hitta namnen på begränsningarna i en tabell i MySQL.

Exempel:

Vi vill visa namnen på begränsningarna i tabellen student .

Lösning:

SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME
FROM information_schema.table_constraints
WHERE table_name='student';

Här är resultatet:

TABLE_NAME CONSTRAINT_TYPE CONSTRAINT_NAME
student PRIMÄRNYCKEL PRIMÄR
student UNIKT personligt_nummer
student UTLANDSNYCKEL student_ibfk_1
student KONTROLLERA student_chk_1

Diskussion:

Använd vyn table_constraints i information_schema schema. Den här vyn innehåller många kolumner, men de viktigaste är table_name , constraint_type och constraint_name . Kolumnen tabellnamn ger dig namnet på tabellen där begränsningen är definierad och kolumnen constraint_name innehåller namnet på begränsningen. Kolumnen constraint_type anger typen av begränsning:PRIMARY KEY för primärnyckeltypen, FOREIGN KEY för den främmande nyckeltypen, UNIQUE för de unika värdena och CHECK för begränsningskontrollen. I vårt exempel kan du se begränsningen som heter PRIMARY för primärnyckeln i student tabell. constraint_type kolumnen ger dig information om typen av varje begränsning; för primärnyckeln är det PRIMARY KEY .


  1. 3 sätt att hitta rader som innehåller små bokstäver i MySQL

  2. Oracle:Vad gör `(+)` i en WHERE-sats?

  3. Refaktorera främmande nyckel till fält

  4. Att blanda explicita och implicita kopplingar misslyckas med Det finns en post för tabell ... men den kan inte refereras från den här delen av frågan