我在库存表上建立类型,通过6个不同因素跟踪库存.我使用的查询与此类似:
INSERT INTO inventory ( productid, factor1, factor2, factor3, factor4, factor5, factor6, quantity, serial_number)
VALUES (242332,1,1,1,'V67',3.30,'NEW',10,NULL)
ON DUPLICATE KEY UPDATE `quantity` = VALUES(`quantity`) + quantity;
Run Code Online (Sandbox Code Playgroud)
该inventory表具有UNIQUE KEY(productid,factor1,factor2,factor3,factor4,factor5,factor6,serial_number).出于某种原因,它没有取得关键而只是INSERT取而代之的是UPDATE.任何人都可以提供解释原因吗?我错过了什么?
这是表create语句:
CREATE TABLE `inventory` (
`stockid` int(11) unsigned NOT NULL AUTO_INCREMENT,
`productid` int(11) unsigned NOT NULL,
`factor1` int(11) unsigned NOT NULL,
`factor2` int(11) unsigned NOT NULL,
`factor3` int(11) unsigned NOT NULL,
`factor4` varchar(8) NOT NULL,
`factor5` decimal(10,2) NOT NULL,
`factor6` enum('A','B','C','D','NEW') NOT NULL,
`quantity` int(11) NOT NULL, …Run Code Online (Sandbox Code Playgroud) 我收到一个奇怪的错误.我有一张桌子animals,我试图放弃.由于外键约束失败,我无法删除表.我知道在放下桌子之前我必须丢弃外键.问题是这个表没有外键.我已经放弃了它们.SQLyog反映他们已被删除.但我仍然可以在info架构中找到它们.好像我把钥匙掉了一半或者别的东西.
如何在不丢弃数据库的情况下删除此表?我需要重新调整此表,我只想删除它并重新创建它.
编辑:这是来自SQL的错误消息:
Cannot delete or update a parent row: a foreign key constraint fails
Run Code Online (Sandbox Code Playgroud)