sql >> Database >  >> RDS >> Mysql

hoe geef je een null-waarde door aan een veld met een externe sleutel?

Sta kolom university_id gewoon toe van tabel user om NULL toe te staan waarde zodat u nulls kunt opslaan .

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

UPDATE 1

op basis van je opmerking zou je NULL moeten invoegen en niet '' .

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

UPDATE 2

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

Even terzijde:de query is kwetsbaar met SQL Injection als de waarde(s ) van de variabelen kwam van buitenaf. Bekijk het onderstaande artikel om te zien hoe u dit kunt voorkomen. Door PreparedStatements . te gebruiken u kunt het gebruik van enkele aanhalingstekens rond waarden verwijderen.



  1. Hoe bereken ik een voortschrijdend gemiddelde met MySQL?

  2. Standaard invoegen in niet-null-kolom als waarde null is

  3. Een AM/PM-tijd omzetten naar een 24-uurs formaat met behulp van PHP of MySQL?

  4. ORA-12516, TNS:luisteraar kon geen beschikbare handler vinden