我有下表:
CREATE TABLE `tab1` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`DEFAULT` VARCHAR(25) DEFAULT NULL,
`ITEM` varchar(25) DEFAULT NULL,
`TIMESTAMP` TIMESTAMP DEFAULT NULL,
`NAME` varchar(25) DEFAULT NULL,
`SURNAME` varchar(45) DEFAULT NULL,
`LOADED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);
然后我有一个包含多个条目的 XML 文件,例如:
<RECORD
ITEM="item1"
TIMESTAMP="2015-08-26 10:04:40"
NAME="Bob"
SURNAME="SMITH"
/>
我使用 MySQL 导入数据:
LOAD XML LOCAL INFILE 'c:/myFile.xml'
INTO TABLE `test`.`tab1`
ROWS IDENTIFIED BY '<RECORD>';
这工作正常。但是我需要为该DEFAULT
字段指定一个默认值。但它需要在我加载文件时指定,并且每个文件都会不同。(为了论证,让我们使用文件名,myfile.xml
)
如何在 XML 导入期间为此行添加默认值?
我看着使用类似的东西:
LOAD XML LOCAL INFILE 'c:/myFile.xml'
INTO TABLE `test`.`tab1` (@default="myfile.xml")
ROWS IDENTIFIED BY '<RECORD>';
SET DEFAULT=@default;
但它不喜欢那样。有办法解决这个问题吗?
当需要做语法中可用的更复杂的事情时,通过临时表“暂存”数据通常很有用:
也许:
或者: