sql >> Database >  >> RDS >> Mysql

Hoe een externe sleutel (MySQL) toe te voegen

U kunt geen NOT NULL-kolom toevoegen aan een tabel met meer dan nul rijen, wanneer de kolom is beperkt tot waarden die overeenkomen met die in de bovenliggende tabel en toch alleen NULL-waarden heeft omdat het een nieuwe, niet-bevolkte kolom is zonder DEFAULT .

De oplossing is om het in fasen te doen:voeg de kolom toe, maar declareer deze niet NOT NULL, en declareer de externe sleutel nog niet.

ALTER TABLE boys
 ADD COLUMN toy_id INT;

Vul het vervolgens in met geldige gegevens die overeenkomen met enkele waarde(n) in uw speelgoedtabel.

UPDATE boys SET toy_id = ...;

Wijzig vervolgens de kolom in NOT NULL en creëer de beperking:

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. Een tabel neerzetten in Oracle SQL

  2. SQL - INDIEN BESTAAT UPDATE ANDERS INSERT INTO

  3. Transacties in SQL begrijpen

  4. ERROR 1064 (42000) databasefout in syntaxis van overpartitie door