表结构:
DROP TABLE IF EXISTS `Branch`;
CREATE TABLE IF NOT EXISTS `Branch`
(
`Bid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`Bname` VARCHAR(20) NOT NULL,
`Bname1` VARCHAR(20),
`Bre` VARCHAR(200),
CONSTRAINT FK_Branch_Bid PRIMARY KEY (`Bid`),
CONSTRAINT UQ_Branch_Bname UNIQUE (`Bname`)
)ENGINE=InnoDB DEFAULT CHARSET=UTF8;
存储过程:
DELIMITER $$
DROP PROCEDURE IF EXISTS `procUpdateBranchByBid` $$
CREATE PROCEDURE `procUpdateBranchByBid`(Bid INT,Bname VARCHAR(20),Bname1 VARCHAR(20),Bre VARCHAR(200))
BEGIN
UPDATE
`Branch`
SET
`Bname` = Bname,
`Bname1` = Bname1,
`Bre` = Bre
WHERE
`Bid` = Bid;
END $$
DELIMITER;
表内数据:
1, 'bbb', '', ''
3, 'dd', 'dd', ''
4, 'ff', 'ff', ''
现在调用存储过程 call procUpdateBranchByBid(1,'ee','ees','');
出现经典问题:
Duplicate entry 'ee' for key 2;
请问大虾们,该如何解决?
DROP TABLE IF EXISTS `Branch`;
CREATE TABLE IF NOT EXISTS `Branch`
(
`Bid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`Bname` VARCHAR(20) NOT NULL,
`Bname1` VARCHAR(20),
`Bre` VARCHAR(200),
CONSTRAINT FK_Branch_Bid PRIMARY KEY (`Bid`),
CONSTRAINT UQ_Branch_Bname UNIQUE (`Bname`)
)ENGINE=InnoDB DEFAULT CHARSET=UTF8;
存储过程:
DELIMITER $$
DROP PROCEDURE IF EXISTS `procUpdateBranchByBid` $$
CREATE PROCEDURE `procUpdateBranchByBid`(Bid INT,Bname VARCHAR(20),Bname1 VARCHAR(20),Bre VARCHAR(200))
BEGIN
UPDATE
`Branch`
SET
`Bname` = Bname,
`Bname1` = Bname1,
`Bre` = Bre
WHERE
`Bid` = Bid;
END $$
DELIMITER;
表内数据:
1, 'bbb', '', ''
3, 'dd', 'dd', ''
4, 'ff', 'ff', ''
现在调用存储过程 call procUpdateBranchByBid(1,'ee','ees','');
出现经典问题:
Duplicate entry 'ee' for key 2;
请问大虾们,该如何解决?
解决方案 »
- mysql应用问题
- mysql5.*,为什么这么写有语法错误了?
- MySQl 直接输出 中文的 日期
- postgresql 我想给一张表插入海量数据,一条条插不现实,怎么用sql文循环插啊
- mysql 两字段相减后 得不到负数 怎么办
- mysql缓存问题
- MYSQL1064错误是怎么回事?请那位解释一下,新手!
- 某个varchar(10)的字段里存有'12','13','1234','1235',123456',如何把所有字符数为2的select出来
- mysql如何允许远程连接啊!
- mysql 实现oracle start with connnect by
- mysql 配置my.cnf时出状况了!
- 问一个数据赋值给数据库的问题。。。
`Bname` = Bname,
`Bname1` = Bname1,
`Bre` = Bre
WHERE
`Bid` = Bid;
你的变量最好重新命一下名字