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

Как да добавите външен ключ (MySQL)

Не можете да добавите NOT NULL колона към таблица, която има повече от нула реда, когато колоната е ограничена до стойности, които съвпадат с тези в родителската таблица, и въпреки това има само NULL стойности, защото това е нова, непопълнена колона без DEFAULT .

Заобиколното решение е да го направите на етапи:добавете колоната, но не я декларирайте като NOT NULL и все още не декларирайте външния ключ.

ALTER TABLE boys
 ADD COLUMN toy_id INT;

След това го попълнете с валидни данни, които съответстват на някои стойности във вашата таблица с играчки.

UPDATE boys SET toy_id = ...;

След това променете колоната да НЕ е NULL и създайте ограничението:

ALTER TABLE boys MODIFY COLUMN toy_id INT NOT NULL,
 ADD CONSTRAINT toys_toy_id_fk
 FOREIGN KEY(toy_id)
 REFERENCES toys(toy_id);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо InnoDB дава очевидно фалшива информация за свободното пространство

  2. Как да зададете стойност за множествен избор от обект на масив в yii2 по време на актуализиране

  3. Rails 3 SQL заявка за избор със съединявания

  4. Как да изберете редове с най-новия час за всяка дата в рамките на последните 30 дни от сега

  5. Параметър номер 2 не е OUT параметър