Odată create, constrângerile nu se mai pot vizualiza într-o manieră directă. O variantă rapidă ar fi prin folosirea scriptului SHOW CREATE TABLE mytable;
Pentru exemplificare, creăm tabela angaj.
|
1 2 3 4 5 6 7 |
DROP TABLE IF EXISTS angaj; CREATE TABLE angaj ( id int PRIMARY KEY AUTO_INCREMENT, nume varchar(255) NOT NULL, pren varchar(255), cod int CHECK (cod>=18) ) ENGINE=INNODB; |
Totuşi, uneori, interfaţa phpMyAdmin nu afişează tot conţinutul.
O variantă mai sigură şi elegantă ar fi prin următorul script:
|
1 2 3 4 5 6 7 8 |
SELECT tc.constraint_schema, tc.constraint_name, tc.table_name, tc.constraint_type, tc.enforced, cc.check_clause FROM information_schema.TABLE_CONSTRAINTS AS tc LEFT JOIN information_schema.CHECK_CONSTRAINTS AS cc ON tc.CONSTRAINT_SCHEMA=cc.CONSTRAINT_SCHEMA AND tc.CONSTRAINT_NAME=cc.CONSTRAINT_NAME WHERE tc.TABLE_NAME='angaj' AND tc.CONSTRAINT_TYPE='CHECK'; |
Rezultatul este următorul:

Modificarea unei constrângeri se poate realiza strict prin ştergerea acesteia şi recrearea ei:
|
1 |
ALTER TABLE angaj DROP CONSTRAINT angaj_chk_1; |
Pentru a modifica eventuala constrângere trebuie să ne asigurăm că în coloana respectivă nu există valori care ar viola regula ce se doreşte a se instaura.
|
1 |
ALTER TABLE angaj ADD CHECK (cod<18); |
Sursa: StackOverflow.com
