在复制特定列时,插入数据库 - Sqlite

时间:2014-10-11 06:33:47

标签: php mysql database

我的数据库列遇到问题。 *我的表中有一个名为“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”)的行。

2 个答案:

答案 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.