gpt4 book ai didi

mysql - 如何将空值传递给外键字段?

转载 作者:IT老高 更新时间:2023-10-28 23:42:30 24 4
gpt4 key购买 nike

我有 2 张 table :

大学:

university_id(p.k) | university_name

用户:

uid | name | university_id(f.k)

如何在用户表中保留university_id NULL

我只写了 1 个查询,我的查询是:

INSERT INTO user (name, university_id) VALUES ($name, $university_id);

这里 $university_id 从前端可以为空。

university 表将由我默认设置。

在前端,学生将选择大学名称,根据 university_id 将传递给 user 表,但如果学生没有选择任何大学名称,那么应该将空值传递给 university_id 字段的 user 表。

最佳答案

只允许表 user 的列 university_id 允许 NULL 值,以便您可以保存 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)
)

更新 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,您可以摆脱在值周围使用单引号。

关于mysql - 如何将空值传递给外键字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15082874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com