您的位置:首页 > 数据库 > MySQL

创建用户表以及使用触发器

2013-10-05 17:05 281 查看
创建用户表,用户额外的表以及触发器:

CREATE TABLE user(
uid int   primary key AUTO_INCREMENT,
birthday varchar(50),
email varchar(50) not null unique default '0',
school varchar(30),
register_day varchar(50) not null default '0',
gender varchar(1) default '0' check(gender in('1','0')),
password  varchar(20) not null default '0'
);
create  table user_a(
uid int not null,
user_name varchar(50)  ,
signature  varchar(255),
head_url varchar(255),
job  varchar(255),
hobby varchar(255),
introduction varchar(255)
)

DELIMITER |

CREATE TRIGGER  conn AFTER INSERT ON user
FOR EACH ROW BEGIN
insert into user_a set uid = NEW.uid;
update user_a set user_name= CONCAT(NEW.uid) where uid=NEW.uid;
END
|


有以下的几点注意:

触发器不能修改触发器所依赖的表。比如用户注册后如果没有修改昵称,那么称就是uid号.一开始是将user_name放在user表中间的,也就是要把uid赋给同一行的user_name.这一部分使用的是这样的触发器:

DELIMITER |

CREATE TRIGGER  conn AFTER INSERT ON user
FOR EACH ROW BEGIN
update user set user_name= CONCAT(NEW.uid) where uid=NEW.uid;
END
|


这样做的话user表连插入都不能用。说明不能这样做。

此外:

mysql不支持 for each statement

也不支持标准sql语句。(比如 insert into user_a (uid) values (new.uid) 这种标准的sql语句)不能有返回值(比如要使用select)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 sql mysql
相关文章推荐