Har*_*eja 31 mysql sql database database-design
我有2张桌子:
university:
university_id(p.k) | university_name
Run Code Online (Sandbox Code Playgroud)
并且user:
uid | name | university_id(f.k)
Run Code Online (Sandbox Code Playgroud)
如何在用户表中保留university_id NULL?
我只写了1个查询,我的查询是:
INSERT INTO user (name, university_id) VALUES ($name, $university_id);
Run Code Online (Sandbox Code Playgroud)
这里$university_id可以从前端空.
university 桌子将由我设置为默认.
在前端,学生将根据university_id将要传递到user表格的大学名称进行选择,但如果学生没有选择任何大学名称,则应将空值传递给user表格中的university_id字段.
Joh*_*Woo 47
只允许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)
)
Run Code Online (Sandbox Code Playgroud)
更新1
根据你的评论,你应该插入NULL而不是''.
insert into user (name,university_id) values ('harjeet', NULL)
Run Code Online (Sandbox Code Playgroud)
更新2
$university_id = !empty($university_id) ? "'$university_id'" : "NULL";
insert into user (name,university_id) values ('harjeet', $university_id);
Run Code Online (Sandbox Code Playgroud)
作为一个旁注,查询是脆弱的SQL Injection,如果值(小号变量)从外面走了进来.请查看下面的文章,了解如何防止它.通过使用,PreparedStatements您可以摆脱使用值周围的单引号.
| 归档时间: |
|
| 查看次数: |
52082 次 |
| 最近记录: |