如果该 对 不存在,如何插入一行?
*注意这些不是主键,我的主键设置为自动增量,
尝试插入时忽略但不起作用
INSERT IGNORE INTO mytable (`myid`, `theirid`) VALUES ('5', '1')
ON DUPLICATE KEY <DO NOTHING>
表格看起来像:
CREATE TABLE `mytable` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`myid` bigint(20) NOT NULL,
`theirid` bigint(20) NOT NULL,
`activated` tinyint(1) NOT NULL DEFAULT '0',
`dateStamp` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1$$
1)您可以在上添加UNIQUE
约束(myid, theirid)
吗?如果是,请添加此约束并使用:
INSERT INTO mytable (myid, theirid)
VALUES (5, 1) ;
并忽略产生警告(或将替换为INSERT IGNORE
)
2)如果您不能添加这样的约束(例如,有时您希望允许这样的重复项而其他时候则不允许),则可以使用以下方法:
INSERT INTO mytable (myid, theirid)
SELECT 5, 1
FROM dual
WHERE NOT EXISTS
( SELECT *
FROM mytable
WHERE myid = 5
AND theirid = 1
) ;
问题内容: 如果两个值都不存在,如何推入数组?这是我的数组: 如果我尝试使用或再次将其推入数组,我什么都不希望发生…但是如果这两个都不存在,那么我希望它 我怎样才能做到这一点? 问题答案: 您可以使用自定义方法扩展Array原型:
我想解析可能有也可能没有DTD的XML文档。如果有一个DTD,那么我想用它来展开实体引用。如果没有DTD(更严格地说,如果没有DOCTYPE声明),我只想忽略DTD处理。 当我设置时,分析包含实体引用的文档失败,因为实体被视为未声明的。 当我设置时,对没有DOCTYPE声明的文档的解析将失败,诊断结果相当模糊:
问题内容: 我有以下代码: 而且我只想在此列不存在的情况下更改此表。 我正在尝试许多不同的方法,但是没有任何效果: 附带程序: 我在END IF中出错,然后在END中又在1中出错 我怎样才能使它尽可能简单? 问题答案: 在存储过程中使用以下命令:
错误为: Msg 156,Level 15,State 1,Procedure EmailsRecebidosInsert,Line 11 关键字“where”附近的语法不正确。
问题内容: 我有下表: 如果给定的ID不存在,我想插入具有默认Val的ID。但是,如果它已经存在,我想增加Val的值。 我有以下代码: 并且它可以工作,但是我想用一个SQL语句来完成。我可以吗? 编辑 : 从@ Xikinho90的答案,我的最终代码是 问题答案: 您可以使用插入或替换。 我认为这可以解决问题 您只需要用输入的ID替换数字 谢谢奇科
问题内容: 如果目录不存在,这是创建目录的正确方法吗?它应该对该脚本具有完全的权限,并且可以被其他人读取。 问题答案: