php – 插入或更新(如果存在)没有主键
我有以下数据库
MySQL表.
> id(PK,AI) 我在PHP中有一个常规查询,将其插入表中. 我希望我的检查和复制参考是电子邮件字段,如果电子邮件是相同的,请更新国家和lastlogin. 我检查了类似问题的其他问题,建议的方法是使用ON DUPLICATE KEY这样 INSERT INTO <table> (field1,field2,field3,...) VALUES ('value1','value2','value3',...) ON DUPLICATE KEY UPDATE field1='value1',field2='value2',field3='value3',... 但是,我的主键不是电子邮件字段而是id,但我不想对其进行检查. 解决方法
一个选项是使电子邮件字段唯一,然后它应该与主键相同,至少关于MySQL的ON DUPLICATE KEY UPDATE:
ALTER TABLE yourTable ADD UNIQUE INDEX `idx_email` (`email`); 然后: INSERT INTO yourTable (email,country,lastlogin) VALUES ('tony9099@stackoverflow.com','value3') ON DUPLICATE KEY UPDATE email='value1',country='value2',lastlogin='value3' 如果您的表中已存在电子邮件tony9099@stackoverflow.com,则更新将使用其他值启动. 来自MySQL documentation:
此方法不仅适用于主键,还适用于具有唯一索引的任何列. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |