草庐IT

update_check

全部标签

MySQL - ON 更新 CASCADE + foreign_key_checks = 0

我正在开发一种工具来合并两个具有相同架构但不同数据的数据库。其中一部分是将所有外键更改为ONUPDATECASCADE,然后递增所有主键以避免冲突并保持外键指针正常工作。我的问题是有时有一些孤立行的FK损坏,所以查询如下:UPDATEtablesetpk=pk+1000000失败是这样的:错误1452(23000):无法添加或更新子行:外键约束失败...(尽管我什至没有考虑触摸外键列!)我想通过以下方式关闭它:Setforeign_key_checks=0但是相关的外键没有更新。我做了一个快速测试,设置foreign_key_checks=0后级联不工作。有没有什么方法可以触发级联,或

php - MYSQL insert or update if exists on one-way composite primary key table 单向复合主键表

我有一个用户之间的友谊表,如下所示。CREATETABLEuser_relations(pkUser1INTEGERUNSIGNEDNOTNULL,pkUser2INTEGERUNSIGNEDNOTNULL,pkRelationsTypeTINYINTUNSIGNEDNOTNULL,PRIMARYKEY(pkUser1,pkUser2),FOREIGNKEY(pkuser1)referencesusers(ID),FOREIGNKEY(pkuser2)referencesusers(ID),FOREIGNKEY(pkRelationsType)referencesuser_relati

php - Codeigniter 2 $this->db->join 与 $this->db->update 一起使用

我刚刚意识到你不能使用:$this->db->join()与$this->db->update()似乎“join”是由codeigniter执行的,但在查询中没有使用,在更新基础表后看到:$this->db->last_query();我看到没有join。然后我尝试对联接表进行更新,认为联接只会在需要时使用,但我没有工作,并告诉我错误1054“where子句中的未知列XXX”。有没有办法强制使用codeigniter?我构建软件的方式,我真的不想自己构建查询的所有不同部分(连接、位置)和调用$this->db->query()。注意:我看到了这些链接:Codeigniteractive

删除数据库报错ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds t

报错现象ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'-bk_itsm--1'atline1原因出现这个错误是因为数据库名称bkapp-bk_itsm–1包含了不允许的字符(如连字符-)。根据MySQL文档,数据库名、表名和列名等标识符应该只包含字母、数字、下划线、美元符号和Unicode字符。在这种情况下,您可以使用反引号(`)将数据库名括起来,以便正确解析。解决方案请尝试使用以下命令删

mysql - 访问同一查询中先前更新的列的行为与 JOIN/多表 UPDATE 不同

假设我有两个表players和stats,内容如下:mysql>select*fromplayers;+----+-------+|id|alive|+----+-------+|1|0||2|1|+----+-------+mysql>select*fromstats;+--------+------+------+-------+|player|win|lose|ratio|+--------+------+------+-------+|1|12|20|0.6||2|8|1|8|+--------+------+------+-------+我想增加每个玩家的win计数器,同时更

索引为 : do many inserts/updates influence performance? 的 MySQL 表 如果是,如何再次加速?

问题是,如果您在表中的某些字段上有索引,如果在大量插入(或更新)之后性能会受到影响,是否有某种方法可以再次加快速度?我不确定,但我已经阅读了很多关于提高性能的文章,以至于我有点困惑。是否碎片化,例如适用于这个问题?或者别的什么?还是对具有少量索引的表进行多次插入根本不会影响性能? 最佳答案 您可能正在寻找OPTIMIZEtable;。请参阅mysqldocumentation中的此处. 关于索引为:domanyinserts/updatesinfluenceperformance?的My

PHP & MySQL : most efficient method to check large array against database

我将大量数据存储在一个多维数组中。示例结构如下:Array([1]=>Array([0]=>motomummy.com[1]=>1921[2]=>473)[4]=>Array([0]=>kneedraggers.com[1]=>3051[2]=>5067))我在mysql数据库中也有一个表,当前包含约80K域名。该列表每月可能会增加~10K+个域名。目标是将Array[][0](域名)与mysql数据库进行比较,并返回一个仅包含唯一值的保留值数组(但key保留不重要)。请注意,我只想比较第一个索引,不是整个数组。假定初始多维数组的大小非常大(很可能有10万到1000万个结果)。取回数据

MySQL中的安全模式(sql_safe_updates)

 安全模式?在mysql中,如果在update和delete没有加上where条件,数据将会全部修改。不只是初识mysql的开发者会遇到这个问题,工作有一定经验的工程师难免也会忘记写入where条件。为了避免失误造成的数据全部修改和删除,可开启mysql的安全模式。1.启动MySQL服务器-- 启动MySQLnetstartmysql57--关闭MySQLnetstopmysql572.查看是否开启安全模式off表示 没有开启安全模式 on表示已经开启安全模式 3.设置安全模式SETSQL_SAFE_UPDATES可以关闭和开启安全模式#关闭安全模式SETSQL_SAFE_UPDATES=0;

php - 拉维尔 : UPDATE if exist else INSERT?

Laravel中是否有一种方法(Eloquent,Fluent...)更新一行,如果该行不存在,它将被插入? 最佳答案 我不知道Laravel有这样的方法,但是对于mysql你可以通过这样的查询来实现INSERTINTOtSETc1='foo',c2='bar'ONDUPLICATEKEYUPDATEc2='bar'你必须在这个表上有一个唯一的索引才能使技巧起作用 关于php-拉维尔:UPDATEifexistelseINSERT?,我们在StackOverflow上找到一个类似的问题:

mysql - 如何从 Mysql Workbench 创建 CHECK 约束

这个问题在这里已经有了答案:CHECKconstraintinMySQLisnotworking(8个答案)关闭3年前。例如我想添加一个检查约束ALTERTABLEfruitADDCONSTRAINTcheck_colourCHECK(colorIN('black','white','green'))我可以在命令行中执行此操作,但是,我在MysqlWorkbench中找不到添加检查约束的选项。我只能找到触发器,但不能检查约束。