草庐IT

insert-into

全部标签

MySQL 你如何使用 INTO OUTFILE 追加到一个文件?

我有以下代码:SELECT*INTOOUTFILE'~/TestInput/Results.csv'FIELDSTERMINATEDBY','LINESTERMINATEDBY'\n'FROMResults;期望的结果是不断地附加到Results.csv 最佳答案 您可以合并结果并立即写入。TEE将记录可能不需要的所有内容。在你的情况下:SELECT*FROMResultsUNIONSELECT*FROMResultsINTOOUTFILE'~/TestInput/Results.csv';

mysql - Insert ... on duplicate key update nothing 使用MySQL

我的问题是我在一张表上有多个唯一键。Insertignore不是一个选项,因为它会抑制错误。MySQL不支持语句外的任何类型的条件(例如if(cond)theninsertelsedon'tinsert)存储过程不是一个选项(我唯一可以使用if/else语句的地方)在重复键上可能会用新值更新键,但我希望唯一键不会更改,以防唯一约束失败。所以唯一的选择是重复只是不更新​​任何东西。有什么办法可以做到这一点?或者还有其他选择吗? 最佳答案 如果您希望ONDUPLICATEKEYUPDATE实际上不执行任何操作,只需将列值设置为现有值即可

php - MySQLi insert_id()

我不知道,我的代码有什么问题。我尝试获取最新的插入ID,它正在回显0。有什么想法吗?publicfunction__construct(){$this->mysqli=newmysqli(MYSQLI_SERVER,MYSQLI_USER,MYSQLI_PWD,MYSQLI_DBNAME)ordie('Errorwithconnectingtothedatabase!');;}publicfunctioninsert_id(){return$this->mysqli->insert_id;}$db->query("INSERTINTOuser(f_name,l_name)VALUES(

mysql - 将 Mysql 转储文件从 INSERT 转换为 INSERT IGNORE

我有一个大约40G的巨大转储文件,我需要将其转储回数据库,因为在恢复后丢失了一些记录。有什么简单的方法可以将转储文件中的INSERT转换为INSERTIGNORE以避免重复条目错误?将文件加载到文本编辑器对我来说似乎行不通。非常感谢你提前 最佳答案 mysqldump还有一个开关--在mysqldump中插入忽略 关于mysql-将Mysql转储文件从INSERT转换为INSERTIGNORE,我们在StackOverflow上找到一个类似的问题: https

PHP MySQL INSERT 执行一次查询返回值

在执行INSERT查询时,MySQL/PHP是否返回任何内容?这是我在类里面的功能。functionmysqlQuery($query){//Getstheresultsfromthequery$results=mysql_query($query,$this->connection);//Loopsthroughthequeriedresultsasanmulti-dimensionalarraywhile($rows=mysql_fetch_array($results,MYSQL_ASSOC)){//Pushresultstosinglearray$rs[]=$rows;}//R

mysql - 分区会提高 MySQL INSERT 速度吗?

我在MySQL5.0上通过LOADDATAINFILE执行了很多INSERT。在多次插入之后,比如几亿行(InnoDB、PK+非唯一索引、64位Linux4GBRAM、RAID1),插入速度显着降低并且出现IO绑定(bind)。如果数据流入单独的分区表,MySQL5.1中的分区是否可能提高性能? 最佳答案 之前的回答是错误的,他认为这会降低性能。恰恰相反。这是一篇冗长但内容丰富的文章,以及为什么以及如何在MySQL中进行分区:http://dev.mysql.com/tech-resources/articles/partition

php - last Insert Id() 如何用于没有自动递增字段的表?

对于没有自动递增字段的表,lastInsertId()如何工作?主键由2个字段组成的表呢?(我正在使用MySQL) 最佳答案 在上述两种情况下,它将返回0。当使用auto_increment列时,它会返回最后一个INSERTID,即使它已指定(即未使用自动增量)。也就是说你应该只在使用自增时使用lastInsertId。否则使用它真的没有意义,因为无论如何您都必须提前知道key.. 关于php-lastInsertId()如何用于没有自动递增字段的表?,我们在StackOverflow上

使用 LAST_INSERT_ID() 在多个表上批量插入 MySQL

我正在尝试将大量用户插入到具有两个表的MySQL数据库中:第一个表包含用户数据。INSERT的示例如下所示(id是主键,mail是唯一键):INSERTINTOusers(id,mail,name)VALUES(NULL,"foo@bar.tld","JohnSmith")ONDUPLICATEKEYUPDATEname=VALUE(name)第二个表包含用户所属的组。它只存储了两个外键users_id和groups_id。示例查询如下所示:INSERTINTOusers_groups(users_id,groups_id)VALUES(LAST_INSERT_ID(),1)此设置非常

MySQL 使用 INSERT IGNORE INTO 时如何检索 LAST_INSERT_ID 的 ID?

场景:我正在将一个CSV文件插入到我的数据库中。我正在使用jdbc驱动程序遍历文件并执行我的插入操作name列是唯一的,因此当相同的值到达时插入不会更改表我正在使用INSERTINTOIGNORE来防止事件发生时迭代中断我正在使用LAST_INSERT_ID()在下一个插入表中添加为FKINSERT_IGNORE发生时我得到0我该如何解决这个问题?Connectioncon=null;try{Class.forName("com.mysql.jdbc.Driver");con=DriverManager.getConnection(URL,USERNAME,PASSWORD);con.

php - 意外的 INSERT ... SET 查询行为

我有一个表,我需要在其中存储另一个表中的两个ID。在进行一些调试时,我注意到SQL有一些奇怪的行为。错误的sql示例:INSERTINTOfollower_listset`followerUserId`='3'AND`followingUserid`='4'上面的查询是在数据库中插入零作为值。我仔细研究了查询,意识到我错误地将和替换为,。我需要实现我的目的的真正查询是:INSERTINTOtableSETcol1='3',col2='4'如我所料。我的问题与第一个(不正确的)查询有关-因为它执行了并且在语法上是正确的,所以像它这样的查询会在哪里使用? 最佳答