Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment passer une valeur nulle à un champ de clé étrangère ?

Autoriser simplement la colonne university_id de la table user pour autoriser NULL valeur afin que vous puissiez enregistrer les 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)
)

MISE À JOUR 1

en fonction de votre commentaire, vous devriez insérer NULL et non '' .

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

MISE À JOUR 2

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

En passant, la requête est vulnérable avec SQL Injection si la valeur(s ) des variables provenaient de l'extérieur. Veuillez consulter l'article ci-dessous pour savoir comment l'éviter. En utilisant PreparedStatements vous pouvez vous débarrasser de l'utilisation de guillemets simples autour des valeurs.