Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在重复密钥更新时使用插入查询_Php_Mysql_Phpmyadmin - Fatal编程技术网

Php 在重复密钥更新时使用插入查询

Php 在重复密钥更新时使用插入查询,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我面临重复密钥更新时插入的问题,它是在每次更新现有记录时插入新记录。 ->所有日期列都是datetime ->所有记录将仅以小写形式插入,如(机油、轮胎) ->我正在更新时比较中的任何唯一或主键 ->车辆id是外键 表: id int PK AI vehicle_id int maintenance_type varchar price double maintenance_date

我面临重复密钥更新时插入的问题,它是在每次更新现有记录时插入新记录。
->所有日期列都是datetime
->所有记录将仅以小写形式插入,如(机油、轮胎)
->我正在更新时比较中的任何唯一或主键
->车辆id是外键

表:

id                     int PK AI
vehicle_id             int
maintenance_type       varchar 
price                  double
maintenance_date       datetime
maintenance_start_date datetime
maintenance_end_date   datetime
查询:

INSERT INTO `maintenance`
(`vehicle_id`,`maintenance_type`,`price`,`maintenance_date`,`maintenance_start_date`,`maintenance_end_date`)
VALUES 
(1, "oil", "3520.00", "2015-11-25 00:00:00", "2015-11-04 00:00:00", "2015-11-13 00:00:00")
ON DUPLICATE KEY UPDATE 
vehicle_id=VALUES(vehicle_id),
maintenance_type = VALUES(maintenance_type)
price = VALUES(price),
maintenance_date = VALUES(maintenance_date),
maintenance_start_date = VALUES(maintenance_start_date),
maintenance_end_date = VALUES(maintenance_end_date)
参考链接:


表中是否有唯一键??表中是否有唯一键或主键?似乎您正在更新此处的所有列。实际上你不能这么做。您应该具有唯一键或复合键。您可以在不使用唯一键或复合键的情况下更新列。