sql >> Database teknologi >  >> RDS >> Mysql

Sådan tilføjes fremmednøgle (MySQL)

Du kan ikke tilføje en NOT NULL-kolonne til en tabel, der har mere end nul rækker, når kolonnen er begrænset til værdier, der matcher dem i den overordnede tabel, og alligevel kun har NULL-værdier, fordi det er en ny, ikke-udfyldt kolonne uden STANDARD .

Løsningen er at gøre det i trin:Tilføj kolonnen, men erklær den ikke som NOT NULL, og erklær ikke fremmednøglen endnu.

ALTER TABLE boys
 ADD COLUMN toy_id INT;

Udfyld den derefter med gyldige data, der matcher nogle værdi(er) i din legetøjstabel.

UPDATE boys SET toy_id = ...;

Skift derefter kolonnen til IKKE NULL, og opret begrænsningen:

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. Oracle:Dage mellem to dato og Ekskluder hverdage hvordan man håndterer negative tal

  2. Vælg alle kolonner undtagen én i MySQL?

  3. Flask :sqlalchemy.exc.ProgrammingError:(psycopg2.ProgrammingError) relationsbrugere eksisterer ikke

  4. Sådan sletter du sidste post (på betingelse) fra en tabel i MySql