我有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字段.
我创建了如下表:
student:
+----+------+-----------+--------+
|uid | name | user_name | branch |
+----+------+-----------+--------+
| | | | |
+----+------+-----------+--------+
Run Code Online (Sandbox Code Playgroud)
我想使用过程将数据插入到表中.
我写的程序是:
create procedure add(in_name varchar(50),in_user_name varchar(50),in_branch varchar(50))
begin
insert into student(name,user_name,branch)values(in_name,in_user_name,in_branch);
结束;
如何为数据库的所有表设置唯一的主键?
例如,我不想重复不同表的任何主键.
table A:
----------
id | name
----------
1 | aaa
3 | bbb
5 | ccc
table B:
-------------
id | surname
-------------
7 | ddd
2 | eee
9 | fff
table C:
-------------
id | nickname
-------------
4 | ggg
6 | hhh
8 | iii
Run Code Online (Sandbox Code Playgroud)
一切id都是primary key和auto_increment.所有数据输入dynamically.I现在用MYSQL在PHPMYADMIN.
我有1个这样的表:
user
----------------------------------------
id | first_name | last_name | full_name
----------------------------------------
Run Code Online (Sandbox Code Playgroud)
我想编写一个触发器,它将first_name和last_name连接到full_name.
我试过下面的触发器:
delimiter |
create trigger fullname after insert on user
for each row
begin
update user set full_name=(select concat(first_name,last_name) from user where id=new.id)where id=new.id;
end;
|
Run Code Online (Sandbox Code Playgroud)
将数据插入用户表时显示此错误:
#1442 - Can't update table 'user' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
表格:
TEST1
id1 | name1
1 | a
2 | s
3 | d
4 | t
5 | z
Run Code Online (Sandbox Code Playgroud)
TEST2
id2 | name2
1 | c
2 | b
3 | e
4 | k
5 | x
Run Code Online (Sandbox Code Playgroud)
需要编写查询以按字母顺序生成输出
a
b
c
d
e
k
s
t
x
z
Run Code Online (Sandbox Code Playgroud)
这是可能只使用SQL查询,不使用代码.