Mam bazę danych, w której muszę upuścić niektóre klucze obce, ale nie wiem wcześniej, czy klucze obce nadal istnieją.Zapytanie, aby znaleźć klucze obce
Znalazłem kilka procedur przechowywanych (http://forums.mysql.com/read.php?97,218825,247526), które załatwia sprawę, ale nie chcę utworzyć procedura składowana dla tego.
Próbowałem użyć zapytania wewnątrz procedury przechowywanej, ale pojawia się błąd przy użyciu „IF EXISTS (SELECT NULL FROM etc .. etc ...
mogę używać tylko IF EXISTS
w procedury przechowywane?
teraz, jedyne co mogę uruchomić to
SELECT * FROM information_schema.TABLE_CONSTRAINTS
WHERE information_schema.TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'FOREIGN KEY'
AND information_schema.TABLE_CONSTRAINTS.TABLE_SCHEMA = 'myschema'
AND information_schema.TABLE_CONSTRAINTS.TABLE_NAME = 'mytable';
i próbowałem to też
IF EXISTS (SELECT NULL FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = DATABASE() AND CONSTRAINT_NAME = parm_key_name) THEN
(...) do something (...)
END IF;
ale dostaję You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF' at line 1
szukałem na forach przykłady prostych pytań i nie mogę zrozumieć, dlaczego to nie działa.
UWAGA: Edycja skorygować niedziałający link
Jak wygląda zapytanie? –
Co konkretnie masz na myśli mówiąc "upuść klucze obce"? – gview
@ gview coś takiego jak ALTER TABLE 'table' DROP ZAGRANICZNY KLUCZ' fk'; –