Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie übergebe ich einen Nullwert an ein Fremdschlüsselfeld?

Lassen Sie einfach die Spalte university_id zu der Tabelle user um NULL zuzulassen Wert, damit Sie Nullwerte speichern können .

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

AKTUALISIERUNG 1

Basierend auf Ihrem Kommentar sollten Sie NULL einfügen und nicht '' .

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

AKTUALISIERUNG 2

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

Als Nebenbemerkung ist die Abfrage mit SQL Injection angreifbar wenn der Wert (s ) der Variablen kam von außen. Bitte werfen Sie einen Blick auf den folgenden Artikel, um zu erfahren, wie Sie dies verhindern können. Durch die Verwendung von PreparedStatements Sie können die Verwendung von einfachen Anführungszeichen um Werte loswerden.