Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

làm thế nào để chuyển một giá trị null cho một trường khóa ngoại?

Chỉ cho phép cột university_id của bảng user để cho phép NULL giá trị để bạn có thể tiết kiệm 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)
)

CẬP NHẬT 1

dựa trên nhận xét của bạn, bạn nên chèn NULL chứ không phải '' .

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

CẬP NHẬT 2

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

Là một phụ chú, truy vấn dễ bị tấn công với SQL Injection nếu giá trị ( s ) của các biến đến từ bên ngoài. Mời các bạn cùng xem bài viết dưới đây để biết cách phòng tránh nhé. Bằng cách sử dụng PreparedStatements bạn có thể loại bỏ việc sử dụng các dấu ngoặc kép xung quanh các giá trị.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL xử lý ORDER BY và LIMIT trong một truy vấn như thế nào?

  2. Cảnh báo:mysqli_connect ():(HY000 / 2002):Không có tệp hoặc thư mục như vậy

  3. Truy xuất ngày còn thiếu từ cơ sở dữ liệu thông qua MySQL

  4. MySQL kiểm tra xem một bảng có tồn tại hay không mà không đưa ra một ngoại lệ

  5. Làm cách nào để chèn dữ liệu vào cơ sở dữ liệu MySQL?