MySQL - โหลดข้อมูล Infile ด้วยเส้นทางตัวแปร

ฉันประสบปัญหาในการตั้งค่าเส้นทางตัวแปรเพื่อใส่ข้อมูลลงในตาราง นี่คือวิธีที่ฉันสร้างเส้นทางของฉัน:

SET @path1 = CONCAT('C:/Projekte/Metrics/DXL_CSV_EXPORT_DATA/', YEAR(NOW()), '_',    MONTH(NOW()), '_', DAY(NOW()), '%', '/_','BeMiko/');`

ทุกๆ วันจะมีการสร้างโฟลเดอร์ใหม่บนเซิร์ฟเวอร์ ฉันต้องการนำเข้าข้อมูลจากไฟล์ .csv จากภายในโฟลเดอร์เหล่านี้โดยอัตโนมัติในแต่ละวัน

ฉันนำเข้าข้อมูลจากไฟล์ด้วย:

LOAD DATA INFILE 
path...
IGNORE INTO TABLE table1 FIELDS TERMINATED BY ';' ENCLOSED BY '"'
LINES TERMINATED BY '<*line_end*>\r\n' IGNORE 1 ROWS;

ฉันจะใช้สตริงภายในตัวแปร @path1 ของฉันเป็นเส้นทางได้อย่างไร หรือหากเป็นไปไม่ได้: มีวิธีอื่นในการแก้ปัญหานี้หรือไม่?


person Officer Bacon    schedule 19.08.2014    source แหล่งที่มา
comment
คุณควรจะสามารถสร้างคำสั่ง SQL ได้ทันที นี่คือตัวอย่าง   -  person RandomSeed    schedule 19.08.2014
comment
สิ่งนี้อาจใช้งานได้ แต่อย่างใดฉันมักจะได้รับข้อผิดพลาดหากฉันพยายามดำเนินการตามขั้นตอน ข้อผิดพลาดแจ้งว่า: คำสั่งนี้ยังไม่รองรับในโปรโตคอลคำสั่งที่เตรียมไว้ (รหัสข้อผิดพลาด 1295) ฉันจะแก้ไขปัญหานี้ได้อย่างไร?   -  person Officer Bacon    schedule 19.08.2014
comment
อ๊ะ. แล้วฉันก็ไม่รู้ คุณมีสิทธิ์เข้าถึงเชลล์หรือไม่? จากนั้นคุณสามารถ mysql -e "LOAD DATA INFILE $var ..."   -  person RandomSeed    schedule 19.08.2014
comment
การทำงานในเชลล์ไม่ใช่สิ่งที่ฉันควรทำตอนนี้ ฉันต้องสร้างขั้นตอนซึ่งจะดำเนินการวันละครั้ง (เหตุการณ์..)   -  person Officer Bacon    schedule 19.08.2014


คำตอบ (1)


ไม่สามารถใช้ตัวแปรเพื่อทดแทนเส้นทางในคำสั่ง LOAD DATA INFILE

อีกด้วย:

ตัวแปรผู้ใช้อาจใช้ในบริบทส่วนใหญ่ที่อนุญาตให้ใช้นิพจน์ได้ ขณะนี้ไม่รวมบริบทที่ต้องการค่าตามตัวอักษรอย่างชัดเจน เช่น ในส่วนคำสั่ง LIMIT ของคำสั่ง SELECT หรือส่วนคำสั่ง IGNORE N LINES ของคำสั่ง LOAD DATA

person Bogdan Mircea Stanciu    schedule 28.12.2016