草庐IT

insert-into

全部标签

mysql - 当表结构在 MySQL 中不匹配时使用 INSERT INTO SELECT

我熟悉命令的以下用法:INSERTINTOmytableSELECT*FROMother_table当表格在布局方面相同时,这种方法工作正常。我想做的是:INSERTINTOmytableSELECT*FROMother_tableONDUPLICATEKEYUPDATE由于语法错误而失败:MySQLError:1064-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear''atline1ONQUERYINSERTINT

mysql - MySQL 上的 join insert/update 是原子操作吗?

在一个Mysql数据库中,每个表都基于启用了自动提交的InnoDB,带有子查询和/或连接的查询是否是原子的?例子:INSERTINTOusersSELECT(x,y,z)FROMusers,commentsWHEREusers.id=comments.user_id;(加入)更新用户,评论SETusers.x=x1WHEREusers.age>30;(加入)UPDATEusers,commentsSETusers.x=x1,comments.y=y1WHEREusers.age>30;(加入)UPDATEusers,commentsSETusers.x=x1,comments.y=y1

php - MySQLi PHP : Check if SQL INSERT query was fully successful using MySQLi

我有一个大函数,可以获取大量不同的数据并将其插入多个表中。并非所有数据都始终可用,因此并非所有SQLINSERT查询都成功。我需要检查哪个SQLINSERT查询完全成功,哪个没有对这些数据执行某些操作(比如插入日志表或类似的)。只是举个例子说明我认为如何做到这一点:$sql='INSERTINTOdata_table(ID,column1,column2)VALUES(?,?,?)';if($stmt->prepare($sql)){$stmt->bind_param('iss',$varID,$var1,$var2);if($stmt->execute()){$success==TR

mysql - 在 Insert 查询中对相同的表名使用 select 查询

是否可以在“插入”查询中使用“选择”查询,但条件是我想对“选择”和“插入”查询使用相同的表名。例如mysql>insertintosample_elements(name,position,ownerel)值('Namespace1',从sample_elements中选择idwherename='Namespace1',0);请指导我。 最佳答案 将您的插入内容更改为如下所示:insertintosample_elements(name,position,ownerel)select'Namespace1',id,0fromsam

MySQL INSERT 在同一张表上使用带 COUNT() 的子查询

我在正确执行INSERT查询时遇到问题,而且我似乎无法在Google或StackOverflow上找到任何解决此特定问题的方法。我正在尝试为特色条目创建一个简单的表,其中entry_id连同它的当前订单一起保存到表中。我想要的输出是这样的:如果featured表当前有这三个条目:featured_identry_idfeatured_order127025414232我希望下一个条目以featured_order=3保存。我正在尝试使以下查询正常工作但运气不佳:INSERTINTO`featured`(`entry_id`,`featured_order`)VALUES(200,(SE

MySQL Insert Select 不强制执行 NOT NULL 约束

我在运行INSERTINTOxxx(col)SELECT...时遇到MySQL5.6InnoDb忽略NOTNULL外键的问题。当以其他格式运行插入语句时,约束会被正确执行。启用外键检查,并且sql_mode=STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION这是一个例子:CREATETABLETest_Parent(idBIGINT(18)UNSIGNEDPRIMARYKEYNOTNULLAUTO_INCREMENT,dummyVARCHAR(255))ENGINE=InnoDBDEFAULTCHARACTERSET

php - INSERT 查询中的西里尔符号

$dblocation="localhost";$dbname="xx";$dbuser="xx";$dbpasswd="xx";$dbcnx=@mysql_connect($dblocation,$dbuser,$dbpasswd);mysql_select_db($dbname,$dbcnx);mysql_query("SETNAMESutf8");mysql_query("SETCOLLATION_CONNECTION=utf8_bin");$name=mysql_real_escape_string($name);$about=mysql_real_escape_string(

mysql - 是否有 MySQL .. INSERT ... ON DUPLICATE KEY SELECT?

有没有办法执行INSERT但在DUPLICATEKEY而不是更新时执行SELECT? 最佳答案 不在一个查询中,但您可以运行INSERTIGNORE然后SELECT.IGNORE使其忽略任何会触发重复键错误而不是停止的行。 关于mysql-是否有MySQL..INSERT...ONDUPLICATEKEYSELECT?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7004409

MySQL select into outfile 不会将文件写入我选择的目录

以下命令:select*INTOOUTFILE'\home\user1\NetBeansProjects\project1\dumps\theData.csv'FIELDSTERMINATEDby','LINESTERMINATEDBY'\n'fromdatabase1不将名为theData.csv的文件写入指定目录。如何将此文件写入指定目录? 最佳答案 路径似乎没有写入-如果你在Linux服务器上,那么我希望路径包含斜杠而不是反斜杠,如果你在Windows机器上,我希望驱动程序字母出现在某个地方(你可以'不要写在网络文件夹上——就

php - 使用 doctrine 2 进行批处理 INSERT IGNORE 的最有效方法

我有一个脚本需要获取数据库中的条目列表,然后迭代那些在另一个表中创建新条目(如果它们不存在)。目前我在做:foreach($entriesas$entry){$newItem=newItem();$newItem->setAttribute($entry->getAttribute());$entityManager->persist($newItem);try{$entityManager->flush();}catch(\Exception$e){if(!strpos($e->getMessage(),'Duplicate')){throw$e;}$entityManager=$t