CREATE TABLE `phpqrelation` (
`rid` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`userId` varchar(30) DEFAULT NULL COMMENT '用户域账号',
`userCode` varchar(30) DEFAULT NULL COMMENT '工号',
`userName` varchar(30) DEFAULT NULL COMMENT '用户姓名',
`objectCode` varchar(30) DEFAULT NULL COMMENT '投票对象员工号',
`objectName` varchar(30) DEFAULT NULL COMMENT '被评人姓名',
`relation` int(1) DEFAULT NULL COMMENT '关系:0-上级,1-平级,2-下级,3-自评',
`isValid` char(1) DEFAULT NULL COMMENT 'Y-有效,N-无效',
`addTime` datetime DEFAULT NULL COMMENT '添加时间',
PRIMARY KEY (`rid`),
KEY `idx_phpqrelation_userId` (`userId`),
KEY `idx_phpqrelation_objectCode` (`objectCode`),
UNIQUE KEY `update_or_insert` (`userCode`,`objectCode`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
userCode和objectCode成为唯一标识,此表为中间表userCode,与objectCode确定relation
当该表中存在userCode与objectCode的记录时,更新relation,否则插入一条新的记录,SQL语句如下:
insert into phpqrelation (userId,userCode,userName,objectCode,objectName,relation,isValid)values('zhangsan','11111','张三','11112','李四','0','Y') ON DUPLICATE KEY UPDATE relation=VALUES(relation);
此sql的意思判断是否存在userCode为11111,objectCode为11112的记录,存在则更新relation为VALUES(relation),否则插入新的记录.
注意:使用该方法,建表的时候要定义 UNIQUE KEY `update_or_insert` (`userCode`,`objectCode`),这样才能保证语句能够正常执行。