- ประเด็นมีอยู่ว่า มีคนเค้า export ข้อมูลจาก access เป็น text file
- ทีนี้เค้าคนที่ export เค้าใช้ navicat นำเค้าข้อมูล text นั้นไปยัง MySQL
- มันมาเกี่ยวกับเราอ่ะ ดิคือ ข้อมูลที่นำเข้าอ่ะ มีหลาย table มันเลยมาเกี่ยวกับเราหว่า
- คือ เราต้อง up data text file to MySQL นั่นเอง
- ตัว navicat มันก็ดีอยู่แต่เราใช้มันไม่ค่อยเป็นหว่า
- ข้อมูลประมาณ 7 - 9 แสน record เอง ธรรมดามาก (ถ้าเรานำเข้าเครื่อง local ไม่เกิน 30 วินาที)
- จะ up text file ขึ้น server ก่อนค่อยใช้ navicat บน server ไง แต่ CentOS มันมี navicat ให้ใช้หรือโปรแกรมอื่นให้ใช้มั้ยหว่า ถึงใช้ได้เราก็ไม่มีสิทธิ์ remote desktop อยู่ดี
- เหลือทางเดียวที่ทำได้คือ หาคำสั่งมา import เลย ประมาณ up data text file ขึ้นผ่าน ftp ไปก่อนค่อยไป import ผ่านคำสั่งเลยที่ local บน server อันนี้โอเคเลย
สมมุติ
- host = localhost
- user = root
- password = 123456
- database = dbsample
- table = tbsample (id, name, remark);
- text = data.txt
- ให้เราสร้างไฟล์คำสั่ง ในที่นี้ตั้งชื่อเป็น loadscript.sql มี content ประมาณนี้
-- This is comment for loaddata.sql
-- load data for table `dbsample`
--
LOAD DATA LOCAL INFILE 'data.txt'
INTO TABLE tb_name
CHARACTER SET tis620
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';
## หรือ แบบที่ 2 คือ ระบุว่า ค่าในแต่ละ column ซึ่งเราระบุชื่อ column ได้เลย
LOAD DATA LOCAL INFILE 'data.txt'
INTO TABLE table_name
CHARACTER SET tis620
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
(@var1, @var2, @var3) SET id=@var1, remark=@var3;
- หลังจากเราทำการสร้างและบันทึกไฟล์ loadscript.sql เรียบร้อย ต่อเป็นเป็นคำสั่ง execute file command นั้น ให้เราพิมพ์คำสั่งดังนี้
mysql -h localhost -u root -p123456 dbsample < loaddata.sql
- เมื่อพิ่มคำสั่งใน cmd เสร็จก็ enter ซะ จากนั้นรอ จนกว่าจะเสร็จ แค่เนี๋ยง่ายมากๆ
เพิ่มเติม
- ไฟล์ text data ที่จะนำเข้า record สุดท้าย จะมีบรรทัดว่างอีกหนึ่งบรรทัดนะพี่น้อง
- จากภาพ text file จะเห็นว่า มีบรรทัดที่ 4 ที่เป็นบรรทัดสุดท้ายจริงๆ อ่ะ
- ถ้าเรา export จาก access มันจะ enter ลง 1 บรรทัด ให้อัตโนมัติ อยุ่แล้ว
อ้างอิง
No comments:
Post a Comment