我没有将ID列定义为在插入时自动增加。当我每次插入新行时,如何编写插入语句以插入maxvalue +1。
如果我尝试这个,Sybase会抛出错误。有没有其他方法可以解决这个问题?
INSERT INTO TABLE(ID, FIRST_NAME,LAST_NAME) VALUES ( SELECT MAX(ID)+1 FROM TABLE,"JOHN","DOE")
错误:姓名' ID'在这种情况下是非法的。只有常数, 常量表达式或此处允许的变量。列名是 非法。
答案 0 :(得分:2)
试试这个:
INSERT INTO TABLE(ID, FIRST_NAME,LAST_NAME)
select MAX(ID)+1, 'JOHN','DOE' FROM TABLE
答案 1 :(得分:0)
尝试
INSERT INTO TABLE(ID, FIRST_NAME,LAST_NAME) VALUES ( SELECT MAX(ID) + 1 FROM TABLE,"JOHN","DOE")
您的代码尝试使用max id添加。所以max(id)存在然后会出现dublicate错误。但是不推荐这种方法,因为当两个用户想要添加记录时,它可能会给出相同的最大值(ID)。