sql >> Database teknologi >  >> RDS >> Mysql

hvordan sender man en null-værdi til et fremmednøglefelt?

Tillad blot kolonne university_id af tabellen user for at tillade NULL værdi, så du kan gemme nuller .

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

OPDATERING 1

baseret på din kommentar, bør du indsætte NULL og ikke '' .

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

OPDATERING 2

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

Som en sidenote er forespørgslen sårbar med SQL Injection hvis værdien (s ) af variablerne kom udefra. Tag et kig på artiklen nedenfor for at lære, hvordan du forhindrer det. Ved at bruge PreparedStatements du kan slippe for at bruge enkelte anførselstegn omkring værdier.



  1. Sådan formateres dato og klokkeslæt i MySQL

  2. fejl under brug af mysql_real_escape_string()

  3. hvordan man får det samlede antal rækker med mysqli

  4. Hvordan tilføjer man offset i en udvalgt forespørgsel i Oracle 11g?