【问题标题】:Load XML Update Table--MySQL加载 XML 更新表--MySQL
【发布时间】:2011-08-20 23:09:30
【问题描述】:
 LOAD XML LOCAL INFILE 'file1.xml'
 INTO TABLE my_table
 ROWS IDENTIFIED BY '<product>'"

是否可以使用此功能更新表格?

我使用了 REPLACE INTO TABLE my_table,但它只添加了新行,并没有更新现有行。

【问题讨论】:

    标签: mysql sql xml load-data-infile


    【解决方案1】:
     LOAD XML LOCAL INFILE 'file1.xml'
     REPLACE 
     INTO TABLE my_table
     ROWS IDENTIFIED BY '<product>'"
    

    见:http://dev.mysql.com/doc/refman/5.5/en/load-xml.html

    注意:

    REPLACE 的工作方式与 INSERT 完全相同,只是如果表中的旧行与 PRIMARY KEY 或 UNIQUE 索引的新行具有相同的值,则在插入新行之前删除旧行。请参见第 12.2.5 节,“INSERT 语法”。

    可能由于外键限制,MySQL 无法删除现有行。

    您可以通过以下方式解决此问题:

    SET FOREIGN_KEY_CHECKS=0;
    ...load xml
    SET FOREIGN_KEY_CHECKS=1;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多