Mysql
 sql >> база данни >  >> RDS >> Mysql

Променете таблицата, за да дадете ограничение за външен ключ

Вие не добавяте ограничение в това изявление, вие добавяте ограничениеs :всяка от двете клаузи FOREIGN KEY означава отделно ограничение. Все пак според ръководството , трябва да можете да добавите толкова ограничения на външния ключ в един израз ALTER TABLE, колкото е необходимо. Просто трябва да включите ADD преди всяко ограничение.

Имайте предвид, че имената на ограничения се прилагат поотделно към ограниченията, които добавяте, и затова може да искате да посочите CONSTRAINT name за втория външен ключ, ако искате той да има конкретно име. Същото с ON UPDATE/ON DELETE :те се прилагат към външния ключ, който е директно пред тях.

Така че коригираното изявление може да изглежда така:

ALTER TABLE users_role_map

ADD CONSTRAINT FK_users_role_map1
FOREIGN KEY (email) REFERENCES usert(email)
ON UPDATE CASCADE
ON DELETE CASCADE,

ADD CONSTRAINT FK_users_role_map2
FOREIGN KEY (id) REFERENCES rolet(id)
ON UPDATE CASCADE
ON DELETE CASCADE;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO SQL-състояние 00000, но все още грешка?

  2. mysqldump чрез SSH към локален компютър

  3. MySQL къде НЕ В масива от имена?

  4. Как да получа имената на колоните на таблицата в база данни в zend?

  5. Четене на знаци като č ć đ š ž от MySql база данни