+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| Destina | Sender | StartTime | EndTime | Created |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 0877222 | 2100 | 10132014010456 | 10132014010459 | 2014-10-13 10:35:46 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 0877222 | 2100 | 10132014010456 | 10132014010459 | 2014-10-13 10:35:46 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 0888333 | 4100 | 10132014010433 | 10132014010443 | 2014-10-13 10:35:46 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 0888333 | 4100 | 10132014010433 | 10132014010443 | 2014-10-13 10:35:46 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 0566666 | 3400 | 10132014010432 | 10132014010452 | 2014-10-13 10:35:46 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 0566666 | 3400 | 10132014010432 | 10132014010452 | 2014-10-13 10:35:46 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
我从一些API中检索的数据中插入了上表, 防止" Destina"," Sender"," StartTime"," EndTime"列 我使用 MySQL INSERT IGNORE 查询
这是我的代码:
$data = array(
'Destina' => $json['Destina'],
'Sender' => $json['Sender'],
'StartTime' => $json['StartTime'],
'EndTime' => $json['EndTime'],
'created' => date('Y-m-d H:i:s')
);
$redis_data = sprintf(
'INSERT IGNORE INTO my_table (%s) VALUES ("%s")',
implode(',',array_keys($data)),
implode('","',array_values($data))
);
$result = mysql_query($redis_data);
但仍然会发生重复,如何解决这个问题,我尝试将主键添加到上面的列中,但是我收到了这条消息:
#1075 - 表定义不正确;只能有一个自动列,必须将其定义为键
谢谢
答案 0 :(得分:1)
添加UNIQUE约束,而不是尝试添加其他主键。 您获得的消息意味着您已经有一个自动增量列,因此,如果您想添加主键,那么此auto_increment列应该是一个。