Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Kod błędu MySQL 1452 Ograniczenie klucza obcego

Zdefiniowałeś ograniczenie klucza obcego na NameID kolumna tj. w tabeli PHONE używając insert dla tabeli telefonów przekazałeś domyślne dla NameID , ale NameID wskazuje na NAME tabeli i oczekiwanie na wstawiony identyfikator rekordu z NAME tabela nie ma wartości domyślnej zgodnie z dokumentacją

Więc twoja druga wstawka może używać wstawionego if z NAME tabela jak

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

Możesz pobrać wyniki z obu tabel, dołączając do nich

select * from NAME
JOIN PHONE 
USING (NameID)

Jak uzyskać unikalny identyfikator dla Ostatnio wstawiony wiersz

Zobacz pokaz skrzypiec




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwertuj BIGINT UNSIGNED na INT

  2. MySQL zwraca tylko jeden wiersz

  3. Określanie mySQL ENUM w modelu Django

  4. MySQL:#1075 - Nieprawidłowa definicja tabeli; autoinkrementacja a inny klucz?

  5. Co to jest InnoDB i MyISAM w MySQL?