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

Chybový kód MySQL 1452 Omezení cizího klíče

Definovali jste omezení cizího klíče pro NameID sloupec, tj. v tabulce PHONE pomocí insert for phone table jste předali výchozí nastavení proti NameID, ale NameID ukazuje na NAME tabulka a očekává se, že bude mít vložené ID záznamu z NAME tabulka nemá výchozí hodnotu podle dokumentů

Takže vaše druhá vložka může používat vložené if z NAME tabulka jako

INSERT INTO NAME (NameID, NAME) VALUES (DEFAULT, 'John Doe');
INSERT INTO PHONE (NameID, PhoneNumber, NumType) VALUES (LAST_INSERT_ID(), '706-782-4719', 'Home');

A můžete získat výsledky z obou tabulek jejich spojením

select * from NAME
JOIN PHONE 
USING (NameID)

Jak získat jedinečné ID pro Poslední vložený řádek

Zobrazit ukázku houslí




  1. Přidání sekund k datetime v MySQL

  2. MySQL LIKE + php sprintf

  3. Jak porovnat dva sloupce a najít neshodné záznamy v MySQL

  4. Migrace Google Cloud SQL pro MySQL na On-Prem Server