Mysql
 sql >> база данни >  >> RDS >> Mysql

как да предам нулева стойност на поле за външен ключ?

Просто разреши колона university_id на таблица user за да разрешите 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)
)

АКТУАЛИЗИРАНЕ 1

въз основа на вашия коментар, трябва да вмъкнете NULL а не '' .

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

АКТУАЛИЗИРАНЕ 2

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

Като странична бележка, заявката е уязвима с SQL Injection ако стойността (s ) на променливите идват отвън. Моля, разгледайте статията по-долу, за да научите как да предотвратите това. С помощта на PreparedStatements можете да се отървете от използването на единични кавички около стойностите.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Импортиране на GeoLite2 на MaxMind в MySQL

  2. .NET Core 2.0 с MySQL:Посоченият ключ беше твърде дълъг; максималната дължина на ключа е 3072 байта

  3. Как да се свържете с MySQL от командния ред

  4. Шифроване на парола в Java или MySQL?

  5. DATEDIFF() Примери – MySQL