比如有两个这样的表:
书刊(书号,书名,书刊类型ID)
书刊类型(ID,类型名称)如何通过trigger控制,使得当我插入一个书刊时,如果书刊类型存在就允许插入,否则不插入并返回错误提示???????
主要不知道语法,它的官方手册里讲得太简单了。
书刊(书号,书名,书刊类型ID)
书刊类型(ID,类型名称)如何通过trigger控制,使得当我插入一个书刊时,如果书刊类型存在就允许插入,否则不插入并返回错误提示???????
主要不知道语法,它的官方手册里讲得太简单了。
解决方案 »
- 【在线等】mysql btree索引存储方式
- 1135Can't create a new thread (errno 12)
- MySQL:用IF语句判断该插入哪个值怎么写?
- 怎样可以获得这样的查询结果
- 在存储过程里,如何将行数返回给变量,然后返回结果集?
- 如何用mysqldump导出忽略主键的表数据?
- mysql 触发器问题2
- 在mysql里增加一列,列的值为行号
- 装了个redhat AS3 linux msyql问题请教
- mysql 有http 协议,什么情况?
- "ACMAIN_CHM"给看看driver has not received any packets from the server
- 求mysql自增字段,主子表同时保存的解决方法
CREATE TABLE `studentlist` (
`Titleof` VARCHAR(100) DEFAULT NULL,
`MgmtArea` VARCHAR(100) DEFAULT NULL,
`Department` VARCHAR(100) DEFAULT NULL,
`Anniversary` INT(2) DEFAULT '0',
`Notes` TEXT,
`Mobilephone` VARCHAR(100) DEFAULT NULL,
`Eid` INT(11) NOT NULL AUTO_INCREMENT,
`empjid` VARCHAR(20) DEFAULT NULL,
PRIMARY KEY (`Eid`)
) ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
DELIMITER $$USE `etggg`$$DROP TRIGGER /*!50032 IF EXISTS */ `checkscode`$$CREATE
/*!50017 DEFINER = 'root'@'localhost' */
TRIGGER `checkscode` BEFORE INSERT ON `studentlist`
FOR EACH ROW BEGIN
IF EXISTS(SELECT eid FROM studentlist WHERE MgmtArea=TRIM(new.MgmtArea)) THEN
SET new.Notes=CONCAT(new.MgmtArea,'该编号已存在');
#如果你要有提示,就在这里设一个主键冲突
END IF;
END;
$$DELIMITER ;
INSERT INTO studentlist(Titleof,MgmtArea) VALUES('黎明','JLY001');
mysql> select * from studentlist;
+---------+----------+------------+-------------+--------------------+----------
---+-----+--------+
| Titleof | MgmtArea | Department | Anniversary | Notes | Mobilepho
ne | Eid | empjid |
+---------+----------+------------+-------------+--------------------+----------
---+-----+--------+
| 李宏峰 | JLY001 | | 0 | |
| 1 | NULL |
| 连芳芳 | JLY002 | | 0 | |
| 2 | NULL |
| 樊少维 | JLY003 | | 0 | |
| 3 | NULL |
| 吴炼 | JLY004 | | 0 | |
| 4 | NULL |
| 黎明 | JLY001 | NULL | 0 | JLY001该编号已存在
| NULL | 5 | NULL |
+---------+----------+------------+-------------+--------------------+----------
---+-----+--------+
5 rows in set (0.00 sec)
http://blog.csdn.net/ACMAIN_CHM/archive/2009/07/25/4380183.aspx
MySQL 中如何在触发器里中断记录的插入或更新?