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

jak předat hodnotu null do pole cizího klíče?

Stačí povolit sloupec university_id tabulky user povolit NULL hodnotu, abyste mohli uložit null .

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)
)

AKTUALIZACE 1

na základě vašeho komentáře byste měli vkládat NULL a ne '' .

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

AKTUALIZACE 2

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

Vedlejší poznámkou je, že dotaz je zranitelný pomocí SQL Injection pokud je hodnota (s ) proměnných pochází zvenčí. Podívejte se prosím na níže uvedený článek, kde se dozvíte, jak tomu zabránit. Pomocí PreparedStatements můžete se zbavit používání jednoduchých uvozovek kolem hodnot.



  1. Jak používat sloupec temp v klauzuli where

  2. Zálohujte PostgreSQL pomocí pg_dump a pg_dumpall

  3. Jste seřazeni? Tipy týkající se řazení oken T-SQL

  4. zadaná data formuláře se neukládají do mysql db?