#mysql #xml
#mysql #xml
Вопрос:
Я запускал это для других файлов и никогда не видел этого раньше и не могу сказать, что происходит.
Вот моя структура таблицы:
DROP TABLE IF EXISTS Searchword; COMMIT;
CREATE TABLE Searchword (
id INT NOT NULL AUTO_INCREMENT
, SearchwordID int
, ConceptID int
, Searchword nvarchar(80)
, CreateDate datetime
, LastDate datetime
, LanguageID int
, PRIMARY KEY (id)
); COMMIT;
Вот мой XML:
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Searchword.xsd" generated="2020-10-09T10:05:52">
<Searchword>
<SearchwordID>1</SearchwordID>
<ConceptID>1</ConceptID>
<Searchword>Tacos</Searchword>
<CreateDate>2020-07-15T09:45:34</CreateDate>
<LastDate>2020-07-15T09:45:34</LastDate>
<LanguageID>1</LanguageID>
</Searchword>
<Searchword>
<SearchwordID>2</SearchwordID>
<ConceptID>1</ConceptID>
<Searchword>Beef Tacos</Searchword>
<CreateDate>2020-07-15T09:42:50</CreateDate>
<LastDate>2020-07-15T09:42:50</LastDate>
<LanguageID>1</LanguageID>
</Searchword>
<Searchword>
<SearchwordID>3</SearchwordID>
<ConceptID>1</ConceptID>
<Searchword>Tacos Supreme</Searchword>
<CreateDate>2020-07-15T09:42:50</CreateDate>
<LastDate>2020-07-15T09:42:50</LastDate>
<LanguageID>1</LanguageID>
</Searchword>
</dataroot>
Мой код загрузки:
LOAD XML LOCAL INFILE 'C:/filelocation/Searchword.xml'
INTO TABLE Searchword
ROWS IDENTIFIED BY '<Searchword>';
;COMMIT;
Но вот мои результаты:
Я не могу понять, почему появляются выделенные строки выше?
Использование версии 8.0.17
Ответ №1:
это потому, что у вас есть
Поисковое слово дважды в вашем xml показывает, где находятся **
**<Searchword>**
<SearchwordID>1</SearchwordID>
<ConceptID>1</ConceptID>
**<Searchword>Tacos</Searchword>**
<CreateDate>2020-07-15T09:45:34</CreateDate>
<LastDate>2020-07-15T09:45:34</LastDate>
<LanguageID>1</LanguageID>
</Searchword>
Итак, более сложная вещь, которая также является строкой
Комментарии:
1. Grr спасибо, что объяснили мне причину. Я изменил один из них, и он работал отлично. Спасибо!
Ответ №2:
Просто запустите тот же оператор без ROWS IDENTIFIED BY '<Searchword>';
LOAD XML LOCAL INFILE 'C:/filelocation/Searchword.xml'
INTO TABLE Searchword
;COMMIT;