我正在尝试导入非英文字符的SQL文件。
下面是SQL文件的内容。
CREATE TABLE IF NOT EXISTS `thebook` (
`Book` int(2),
`Chapter` INTEGER,
`Versecount` INTEGER,
`verse` varchar(1024)
);
INSERT INTO "thebook" VALUES(0,1,1,'आरम्भमा परमेश्वरले आकाश र पृथ्वी सृष्टि गर्नु भयो।');
INSERT INTO "thebook" VALUES(0,1,2,'पृथ्वी शून्य थियो, पृथ्वीमा केही पनि थिएन। समुद्रलाई अँध्यारोले ढाकेको थियो अनि परमेश्वरको आत्मा पानीमाथि परिभ्रमण गरिरहन्थ्यो।');
INSERT INTO "thebook" VALUES(0,1,3,'तब परमेश्वरले भन्नुभयो, “उज्यालो होस्!” अनि उज्यालो चम्कन थाल्यो।');
INSERT INTO "thebook" VALUES(0,1,4,'परमेश्वरले उज्यालो देख्नु भयो अनि त्यसलाई असल मान्नु भयो। तब परमेश्वरले उज्यालो र अँध्यारोलाई छुट्याउनु भयो।');
INSERT INTO "thebook" VALUES(0,1,5,'परमेश्वरले उज्यालोलाई “दिन” र अँध्यारोलाई “रात” नाउँ दिनु भयो।साँझ पर्यो अनि बिहान भयो। यो पहिलो दिन थियो।');
INSERT INTO "thebook" VALUES(0,1,6,'तब परमेश्वरले भन्नुभयो, “पानीलाई दुइ भाग पार्न त्यहाँ बतास होस्!”');
INSERT INTO "thebook" VALUES(0,1,7,'यसर्थ परमेश्वरले त्यहाँ बतास सृष्टि गर्नुभयो अनि पानी छुट्टियो। केही पानी बतासमाथि रहयो अनि केही पानी बतास मुनि।');
INSERT INTO "thebook" VALUES(0,1,8,'परमेश्वरले त्यस बतासलाई “आकाश” नाउँ दिनु भयो। साँझ पर्यो अनि बिहान भयो। यो दोस्रो दिन थियो।तेस्रो दिन - सुख्खा भूमि र उद्भिद');
INSERT INTO "thebook" VALUES(0,1,9,'तब परमेश्वरले भन्नुभयो, “आकाश मुनिको पानी एकै ठाउँमा जम्मा होस्, र त्यहाँ सुख्खा भूमि देखियोस्।” अनि त्यस्तै भयो।');
INSERT INTO "thebook" VALUES(0,1,10,'त्यो सुख्खा भूमिलाई परमेश्वरले “पृथ्वी” नाउँ राख्नु भयो। अनि एकै ठाउँमा जम्मा भएको पानीलाई “समुद्र” नाउँ राख्नु भयो। परमेश्वरलाई यस्तो भएकोमा असल लाग्यो।');
INSERT INTO "thebook" VALUES(0,1,11,'तब परमेश्वरले भन्नुभयो, “पृथ्वीमा घाँस, अन्न उत्पन्न गर्ने उद्भिद तथा फल हुने बोटहरु उम्रियोस्। फल-रूखहरुले बीउ भएका फल फलाउने छन्। अनि प्रत्येक रूखले आफ्नै जातिका बीउ उब्जाउनेछ। यी उद्भिदहरू पृथवीमा उम्रिउन्।” अनि यस्तै भयो।');
INSERT INTO "thebook" VALUES(0,1,12,'पृथ्वीमा घाँस र उद्भिदहरू उम्रे अनि अन्नहरू फले। अनि पृथ्वीमा फलभित्र बीउहरु हुने फल फल्ने रुखहरु उम्रिए। प्रत्येक उद्भिदले आफ्नै प्रकारको बीउहरु सिर्जना गरे। अनि परमेश्वरले यिनलाई देखेर असल मान्नु भयो।');
INSERT INTO "thebook" VALUES(0,1,13,'साँझ पर्यो अनि बिहान भयो। यो तेस्रो दिन थियो।');
COMMIT;
在我看来,语法是正确的,但非英语字符附近出现错误。
Error
SQL query:
INSERT INTO "thebook" VALUES(0,1,1,'आरम्भमा परमेश्वरले आकाश र पृथ्वी सृष्टि गर्नु भयो।')
MySQL said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"thebook" VALUES(0,1,1,'आरम्भमा परमेश्वरले आ' at line 1
有人知道如何处理包含非英语内容的SQL的问题吗?
答案 0 :(得分:2)
删除标识符周围的双引号
INSERT INTO "thebook" VALUES(0,1,1,'...
^ ^
我们可以不保留标识符(即表名),也可以将双引号替换为MySQL标准反引号。如CREATE TABLE
语句所示。
INSERT INTO `thebook` VALUES(0,1,1,'...
^ ^
默认的sql_mode
使MySQL将双引号中的标记识别为字符串文字。为了使MySQL能够识别标识符周围的双引号,我们需要在ANSI_QUOTES
中加入sql_mode
。
https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_ansi_quotes
ANSI_QUOTES
Treat“作为标识符引号字符(如`引号字符),而不是字符串引号字符。启用此模式后,仍可以使用`引号标识符。启用ANSI_QUOTES时,不能使用双引号引起来文字字符串,因为它们被解释为标识符。