Wie bekomme ich eine Liste aller Einschränkungen aus einer bestimmten Datenbank?Liste der Einschränkungen von MySQL-Datenbank
Antwort
Verwenden Sie die information_schema.table_constraints
Tabelle die Namen der Einschränkungen für jede Tabelle definiert zu erhalten:
select *
from information_schema.table_constraints
where constraint_schema = 'YOUR_DB'
Verwenden Sie die information_schema.key_column_usage
Tabelle werden die Felder in jedem dieser Zwänge zu bekommen:
select *
from information_schema.key_column_usage
where constraint_schema = 'YOUR_DB'
Wenn Stattdessen sprechen Sie über Fremdschlüsseleinschränkungen, verwenden Sie information_schema.referential_constraints
:
select *
from information_schema.referential_constraints
where constraint_schema = 'YOUR_DB'
Diese Liste enthält nur UNIQUE-, PRIMARY KEY- oder FOREIGN KEY-Einschränkungen. CHECK ist möglich, wird aber nicht erzwungen. DEFAULT-Einschränkungen sind mit dieser Abfrage nicht sichtbar. –
MySQL speichert CHECK-Einschränkungen nicht. Wenn Sie versuchen, einen zu definieren, parst er ihn und verwirft ihn stillschweigend. –
Der DEFAULT-Wert zählt nicht als Einschränkung. Es ist in 'information_schema.columns.column_default' gespeichert. –
Große Antwort von @Senseful.
ich modifizierte Abfrage für die vorstelle, die nur für die Liste der Constraint-Namen suchen (und nicht andere Details/Spalten):
SELECT DISTINCT(constraint_name)
FROM information_schema.table_constraints
WHERE constraint_schema = 'YOUR_DB'
ORDER BY constraint_name ASC;
Wenn Sie einen löschen müssen, sobald Sie ihn gefunden haben, finden Sie hier http://StackOverflow.com/a/838412/2401804 – r3wt
SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = "TABNAM"; Das hilft wirklich
wenn Sie Primär- und Fremdschlüssel-Constraints sowie Regeln rund um diese Einschränkungen wie ON_UPDATE und ON_DELETE und die Spalte und ausländischen Spaltennamen alle zusammen sehen wollen:
SELECT tc.constraint_schema,tc.constraint_name,tc.table_name,tc.constraint_type,kcu.table_name,kcu.column_name,kcu.referenced_table_name,kcu.referenced_column_name,rc.update_rule,rc.delete_rule
FROM information_schema.table_constraints tc
inner JOIN information_schema.key_column_usage kcu
ON tc.constraint_catalog = kcu.constraint_catalog
AND tc.constraint_schema = kcu.constraint_schema
AND tc.constraint_name = kcu.constraint_name
AND tc.table_name = kcu.table_name
LEFT JOIN information_schema.referential_constraints rc
ON tc.constraint_catalog = rc.constraint_catalog
AND tc.constraint_schema = rc.constraint_schema
AND tc.constraint_name = rc.constraint_name
AND tc.table_name = rc.table_name
WHERE tc.constraint_schema = 'my_db_name'
Sie selbst möchten Um weitere Informationen zu diesen Spalten hinzuzufügen, fügen Sie diese einfach in das SQL ein (und wählen Sie die gewünschten Spalten aus):
LEFT JOIN information_schema.COLUMNS c
ON kcu.constraint_schema = c.table_schema
AND kcu.table_name = c.table_name
AND kcu.column_name = c.column_name
- 1. Dynamische Liste von Einschränkungen in CVXPY erzeugen
- 2. Mischen einer Liste mit Einschränkungen in Python
- 3. Einschränkungen der benutzerdefinierten UITableCellView
- 4. Einschränkungen der MyAnimeList-REST-API
- 5. Lokale Einschränkungen der Funktionsnutzung
- 6. Einrücken der Vorlage Einschränkungen
- 7. Einschränkungen der Zeichenfolge Variable
- 8. Ändern Einschränkungen abhängig von der Bildschirmgröße
- 9. Einschränkungen von GROUP BY
- 10. Einschränkungen von #! in Skripten
- 11. Einschränkungen von unboxed Typen
- 12. Einschränkungen der Zeilenanzahl in MySQL
- 13. Einschränkungen von ScriptManager in AJAX-Aufrufen
- 14. Nachteile und Einschränkungen von ETags
- 15. uniquess von Methoden und Einschränkungen
- 16. Hinzufügen von Einschränkungen Etiketten programmatisch
- 17. MySQL-Einschränkungen
- 18. XSD-Einschränkungen
- 19. Einschränkungen programmgesteuert festlegen
- 20. Komplexe Einschränkungen in der "Where" -Klausel
- 21. ngAnimateSwap Einschränkungen
- 22. CHECK-Einschränkungen
- 23. Einschränkungen/Nachteile der Entwicklung von Portlets für Liferay
- 24. Automatisches Hinzufügen von Einschränkungen automatisch bei der Präsentation ViewController
- 25. Ruby optparse Einschränkungen
- 26. Derby - Einschränkungen
- 27. Allgemeine Einschränkungen
- 28. Hinzufügen von Einschränkungen in Q-Learning und Zuweisen von Belohnungen, wenn Einschränkungen verletzt werden
- 29. Anzeigen der Einschränkungen in einer Tabelle
- 30. Erlang und Laufzeit Rekord Einschränkungen
In MySQL gibt es mehr als einen Constraint-Typ. Was meinst du? Können Sie ein Beispiel für die Art von Dingen geben, nach denen Sie suchen? –