我有一张学生桌,上面有学生的记录。我遇到了重复更新密钥功能的问题。通过我的系统工作方式,我在保存q记录后随机分配2个学生的唯一号码。
我的查询luk喜欢这个
$长度=(10000000,999999999); $随机= SUBSTR(uniqid,0,$长度); 此查询创建一个完美的字母数字唯一键4 me。
我的保存查询是
$ save =“插入学生(REG_NUMBER,用户名,姓氏) VALUES('$ random','username','$ surname') 在DUPLICATE KEY UPDATE username ='$ username'“; $ result = mysql_query($ save)或die(mysql_error());
查询的保存部分工作正常, 但它不会更新现有记录, 而是它创建一个新的随机ID而不更新 旧记录。请问我怎么做...需要帮助因为我是新的2 php
答案 0 :(得分:0)
首先,reg_number必须是唯一的主键 - 所以确保它是。
其次,你使用$ random作为reg_number,你能保证它不是重复吗?
第三,确保您的reg_number列没有设置AUTOIncrement属性
答案 1 :(得分:0)
InnoDB表的效果并不相同,其中primary_key / unique_key是自动增量列。使用自动增量列,INSERT语句会增加自动增量值,但UPDATE不会
检查您的引擎以及PK中的自动增量