sql >> Databáze >  >> RDS >> Mysql

Jak přidat cizí klíč (MySQL)

Sloupec NOT NULL nemůžete přidat do tabulky, která má více než nula řádků, když je sloupec omezen na hodnoty, které odpovídají hodnotám v nadřazené tabulce, a přesto má pouze hodnoty NULL, protože se jedná o nový, nevyplněný sloupec bez DEFAULT. .

Řešením je udělat to ve fázích:přidejte sloupec, ale nedeklarujte jej NOT NULL a zatím nedeklarujte cizí klíč.

ALTER TABLE boys
 ADD COLUMN toy_id INT;

Poté jej naplňte platnými údaji, které odpovídají některým hodnotám ve vaší tabulce hraček.

UPDATE boys SET toy_id = ...;

Potom změňte sloupec tak, aby byl NOT NULL, a vytvořte omezení:

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. MySQL – Oprava chyby – Chyba databáze WordPress Duplicitní záznam pro klíč PRIMARY pro dotaz INSERT INTO wp_options

  2. Seskupit podle data pouze ve sloupci Datetime

  3. Tlačítko Delete nefunguje v CodeIgniter

  4. Přidání sloupců (SQL dotazů) do souboru CSV v Ruby