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

jak przekazać wartość null do pola klucza obcego?

Po prostu zezwól na kolumnę university_id tabeli user aby zezwolić na NULL wartość, dzięki czemu można zapisać nulls .

CREATE TABLE user
(
   uid INT NOT NULL,
   Name VARCHAR(30) NOT NULL, 
   university_ID INT NULL,    -- <<== this will allow field to accept NULL
   CONSTRAINT user_fk FOREIGN KEY (university_ID)
       REFERENCES university(university_ID)
)

AKTUALIZACJA 1

na podstawie Twojego komentarza powinieneś wstawić NULL a nie '' .

insert into user (name,university_id) values ('harjeet', NULL)

AKTUALIZACJA 2

$university_id = !empty($university_id) ? "'$university_id'" : "NULL";
insert into user (name,university_id) values ('harjeet', $university_id);

Na marginesie, zapytanie jest podatne na SQL Injection jeśli wartość (s ) zmiennych pochodziło z zewnątrz. Zapoznaj się z poniższym artykułem, aby dowiedzieć się, jak temu zapobiec. Używając PreparedStatements możesz pozbyć się pojedynczych cudzysłowów wokół wartości.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wielowymiarowa tablica PHP MYSQL

  2. Ciąg do jody LocalDate w formacie dd-MMM-rr

  3. Nieznana kolumna w miejscu klauzuli

  4. Policz wiersze tabeli

  5. Zaloguj wszystkie zapytania w mysql