草庐IT

key_type

全部标签

mysql - INSERT...ON DUPLICATE KEY UPDATE..... 有两个关键字段

我有一个包含三个字段的表字段一field_two字段三我想做一个插入/更新,但不是检查其中一个关键字段是否已经存在,我需要检查(field_one,field_two)组合是否已经在数据库中,如果是,然后更新插入。 最佳答案 在您的表(field_one,field_two)上创建唯一索引your_index_name(seedocs)并使用INSERT...ONDUPLICATEKEYUPDATE.MySQL会自动完成剩下的工作。 关于mysql-INSERT...ONDUPLICAT

mysql - 为什么 ON DUPLICATE KEY UPDATE 语句将值增加 2 而不是 1?

什么会导致ONDUPLICATEKEYUPDATE语句将值增加2而不是1,这是我使用的SQL:INSERTINTObanner_view(banner_id,date,views)VALUES('10',CURDATE(),'1')ONDUPLICATEKEYUPDATEviews=(views+1)这是数据库架构:CREATETABLE`banner_view`(`banner_id`int(11)UNSIGNEDNOTNULL,`date`dateNOTNULL,`views`int(10)UNSIGNEDNOTNULL,PRIMARYKEY(`banner_id`,`date`)

mysql - 即使抛出异常 DUPLICATE KEY 或事务被回滚,auto_increment 值也会递增

我有一个表-id是auto_increment和一个email列被定义为UNIQUE.考虑将auto_increment设置为1。在我的存储过程中,当我INSERT具有唯一电子邮件ID的新行时,auto_increment列会递增。正确的行为。现在,当我尝试再次INSERT同一封电子邮件时,UNIQUEKEY被违反了。我检查它并执行ROLLBACK。但是auto_increment现在设置为2。为什么?在INSERT的第三次尝试中,这次使用唯一的电子邮件插入行,但是id字段的值为3。不好。有什么方法可以将值减回到2。 最佳答案 检查

mysql - ON DUPLICATE KEY UPDATE 导致外键约束错误

我搜索了StackOverflow,但找不到我的具体问题的答案。最近我非常喜欢用列表更新记录,使用“INSERTINTO...ONDUPLICATEKEYUPDATE”。但是,我遇到了以下查询的问题:INSERTINTOitens(prod_id,qtd)VALUES(410,1),(442,-1)ONDUPLICATEKEYUPDATEqtd=qtd+VALUES(qtd)这导致错误:“无法添加或更新子行:外键约束失败。”这是有问题的表的结构。“carrinho_id”是一个外键。我对我没有尝试使用外键做任何事情这一事实感到困惑。我只是想更新数量。CREATETABLEIFNOTEX

mysql - #1062 - key '111' 的重复条目 'PRIMARY'

我正在尝试通过phpMyAdmin导入数据库,但我遇到了重复出现此特定错误的问题,即使我找不到重复条目的位置。我更改了PK的一些值以查看会发生什么,即我将13更改为111,将12更改为112。因此即使我更改了值,它仍然将其视为重复。SQLquery:----Dumpingdatafortable`gno_affiliates`--INSERTINTO`gno_affiliates`(`id`,`affiliate_name`,`affiliate_url`)VALUES(111,'Blackberry','http://www.blackberry.com'),(112,'Androi

php - 数据库设计 : implementing several types of the same entity

我正在编写一个分类广告Web应用程序。该应用程序有几种类型的广告:一般广告(电子产品、玩具、宠物、书籍...)房地产(房屋、公寓、地block……)车辆(摩托车、汽车、货车、卡车...)每种类型都有几个公共(public)字段(id、title、description),还有一些是它的类型独有的:常规广告(无专用字段)房地产(面积、特性类型……)车辆(车辆类型、容积、公里...)对于这种情况,最推荐的方法是什么?一个包含所有字段的表格,将那些字段留空不适用于当前记录集。包含所有广告通用字段的主表,以及包含专有字段的每种类型广告的附加表。每种类型的广告一个表。其他

mysql - INSERT ... ON DUPLICATE KEY UPDATE(要比较的两个键)

我想做的是增加第4列的值,如果它不存在,当一行有col0=valuecol0ANDcol2=valuecol2在表中。否则,我当然想插入该行。INSERTINTOtablename(col0,col1,col2,col3)VALUES(valuecol0,valuecol1,valuecol2,valuecol3)ONDUPLICATEKEYUPDATEcol3=col3+VALUES(col3);无论如何,我不知道应该如何在表中设置索引,我阅读了文档中的页面here但这没什么用。所以我尝试了所有四种可能的组合,但没有一个有效!我哪里失败了? 最佳答案

mysql - 错误 1215 : Cannot add foreign key constraint

我使用mySqlWorkbench构建了一个数据库,但是当我尝试将我的模型转发到服务器时,出现以下错误:ERROR:Error1215:Cannotaddforeignkeyconstraint后面是定义外键的表的定义,salaire_annee_ca我阅读了类似的主题以确定此错误的常见原因,并检查了:如果salaire_annee_ca中定义的外键引用了另一个表的主键,它确实如此如果代码中的某些内容允许我的key为空,而事实并非如此如果引用类型和外键类型相同在我看来,所有这些条件都可以,所以我不明白为什么我仍然收到该消息。以下是我的表的定义:这是两个主要的:--Table`credi

java - Java : How to Differ Inserted/Updated/NoChange states 上的 MySQL "INSERT ... ON DUPLICATE KEY UPDATE"

我对MySQL的INSERT...ONDUPLICATEKEYUPDATE的返回值感到困惑陈述。当我在MySQL客户端(mysql终端、phpmyadmin或MySQLWorkbench)上尝试时,执行结果为以下之一:1:如果插入新记录(即没有重复键)。2:如果现有记录在重复键的情况下更新。0:如果执行了更新但没有更改列值。这些结果是有道理的。但是,当我在Java中执行相同的查询时(使用mysql-connector5.1.34),JDBC的executeUpdate方法在两种情况下都返回1插入且无变化,2如果更新成功。更新无效时不返回0。这是MySQLJDBC驱动程序的错误吗?如果是

PHP/MySQL : What data type to chose for encrypted passwords (bcrypt, 最大。 100 个字符)

我使用以下方法在将密码存储到MySQL数据库之前对其进行加密。目前我已将密码的长度限制为最大。20个字符,因为我不确定更长的密码是否会由于加密输出而导致此处出现问题。在PHP中,我使用以下内容进行加密:$pw=password_hash($_POST["pw"],PASSWORD_BCRYPT);密码在传递之前正在客户端进行修整。谁能告诉我CHAR(60)是否足以覆盖最多100个字符(数字、大写和小写字母,特殊字符)?此外,是否有一个共同的最大值。应该为密码设置的字符限制-不会增加漏洞?我了解到有些人肯定想使用更长的密码,例如短语等。 最佳答案