我的数据库列遇到问题。 *我的表中有一个名为“id”的列(我不想放置主键或使其唯一)。 表结构:
x----x--------x------x------x
| id | unique | name | phone|
x----x--------x------x------x
| 12 | ab1 | Jhon |989898|
x----x--------x------x------x
| 13 | cv12 | Nasn |983984|
x----x--------x------x------x
我从PHP文件接收行数据, 现在我想通过重命名“id”来插入到这个表中,如果我的PHP收到任何具有相同“id”(已经存在的“id”)的行。
答案 0 :(得分:1)
如果您不想在该列上放置唯一约束,则必须首先在表中查询与该ID匹配的值,然后在可能多次更改后插入它。
这并不难,但你最终会做很多查询。当然,如果你把(没有唯一的)索引放在上面,那些查询就会很快。
我仍然会在id列上放置一个主键,因为这似乎是非常正确的。当从插入中获得“重复键”错误时,您将增加id并重试,直到它工作。
答案 1 :(得分:0)
查询1:select count(*) from yourtable where id=<newrecord_id>
如果
result of above query return 0 then you can simply insert new record
否则
You need to find max value from table be below query
select max(id) from yourtable;
Now with new maximum id value + 1 = new id for insert new redord.