วิธีนำเข้าตารางเดียวในฐานข้อมูล mysql โดยใช้บรรทัดคำสั่ง


141

ฉันนำเข้าฐานข้อมูลได้สำเร็จโดยใช้บรรทัดคำสั่ง แต่ตอนนี้พื้นที่ความเจ็บปวดของฉันคือวิธีการนำเข้าตารางเดียวโดยมีข้อมูลไปยังฐานข้อมูลที่มีอยู่โดยใช้บรรทัดคำสั่ง


3
ส่งออกโต๊ะเดี่ยวเท่านั้นและนำเข้า
Shakti Singh

3
ดูคำถามที่ซ้ำกันนี้: stackoverflow.com/q/1013852/385571พร้อมคำตอบที่เกี่ยวข้องมากขึ้น
MattBianco

คำตอบ:


317

Linux:

ในบรรทัดคำสั่ง

 mysql -u username -p  databasename  < path/example.sql

วางตารางของคุณใน example.sql

นำเข้า / ส่งออกสำหรับตารางเดียว:

  1. ส่งออกตารางสคีมา

    mysqldump -u username -p databasename tableName > path/example.sql

    นี้จะสร้างไฟล์ชื่อexample.sqlในเส้นทางดังกล่าวและเขียนcreate tableคำสั่ง SQL tableNameเพื่อสร้างตาราง

  2. นำเข้าข้อมูลลงในตาราง

    mysql -u username -p databasename < path/example.sql

    คำสั่งนี้จะต้องมีไฟล์ SQL ที่มีข้อมูลในรูปแบบของงบสำหรับตารางinsert คำสั่งtableNameทั้งหมดinsertจะถูกดำเนินการและข้อมูลจะถูกโหลด


2
the -u พลาด;) mysqldump -u ชื่อผู้ใช้ -p ชื่อฐานข้อมูล tableName> path / example.sql
Kazmin

2
สำหรับการนำเข้าคุณไม่จำเป็นต้องใช้การถ่ายโอนข้อมูล mysql mysql -u ชื่อผู้ใช้ -p ชื่อฐานข้อมูล tableName <path / example.sql มันควรจะทำงานของคุณ
Prabhakar Undurthi

8
tableNameชื่อไม่จำเป็นสำหรับทุกรุ่น MySQL และมันผลิตข้อผิดพลาดดังนั้นคุณอาจจำเป็นที่จะละเว้นมัน!
mchar

1
ฉันได้รับข้อผิดพลาดทางไวยากรณ์จนกว่าฉันจะรู้ว่าอยู่ใน bash และไม่ใช่ mysql เมื่อดำเนินการ
Christia

2
สิ่งนี้จะทำงานได้ก็ต่อเมื่อฉันมีสิทธิ์เข้าถึงฐานข้อมูลที่ฉันสามารถส่งออกตารางเฉพาะได้ อย่างไรก็ตามหากฉันมีฐานข้อมูลเต็มรูปแบบและต้องการนำเข้าตารางจากเชอร์รี่ให้เลือกโซลูชันนี้จะไม่ทำงาน โพสต์ที่เชื่อมโยงฉันสามารถกู้คืนตารางเดียวจากไฟล์ mysql เต็ม mysqldump ได้หรือไม่ ที่อยู่ที่ปัญหา
codeforester

34

ส่งออก:

mysqldump --user=root databasename > whole.database.sql
mysqldump --user=root databasename onlySingleTableName > single.table.sql

นำเข้า :

ฐานข้อมูลทั้งหมด :

mysql --user=root wholedatabase < whole.database.sql

โต๊ะเดี่ยว:

mysql --user=root databasename < single.table.sql

23

ตัวเลือกทั้งหมดนี้ใช้ได้ถ้าคุณมีตัวเลือกในการส่งออกข้อมูลอีกครั้ง

แต่ถ้าคุณต้องการใช้ไฟล์ SQL ที่มีอยู่และใช้ตารางเฉพาะจากนั้นสคริปต์ perl นี้ในบล็อก TimeSheetพร้อมให้คุณแยกตารางเป็นไฟล์ SQL แยกต่างหากจากนั้นจึงนำเข้า


นอกจากนี้โพสต์ที่เชื่อมโยงฉันสามารถคืนค่าตารางเดียวจากไฟล์ mysql เต็ม mysqldump ได้หรือไม่ แก้ไขปัญหานี้
codeforester

12

การนำเข้าตารางเดียว

หากต้องการนำเข้าตารางเดียวไปยังฐานข้อมูลที่มีอยู่คุณจะต้องใช้คำสั่งต่อไปนี้:

mysql -u username -p -D database_name < tableName.sql

หมายเหตุ: จะเป็นการดีกว่าถ้าใช้พา ธ แบบเต็มของไฟล์ sql tableName.sql


5

บรรทัดคำสั่ง

นำเข้า / ส่งออกสำหรับตารางเดียว:

การส่งออกตารางสคีมา

 -> mysqldump -u your_user_name -p your_database_name table_name > test.sql

สิ่งนี้จะสร้างไฟล์ชื่อ test.sql และสร้างคำสั่ง table sql เพื่อสร้างตาราง table_name

การนำเข้าข้อมูลลงในตาราง

 -> mysql -u your_user_name -p database_name table_name < test.sql

ตรวจสอบให้แน่ใจว่าไฟล์ test.sql ของคุณอยู่ในไดเรกทอรีเดียวกันหากไม่ไปตามเส้นทางแล้วเรียกใช้คำสั่ง


3
คุณไม่จำเป็นต้องระบุชื่อตารางในบรรทัดคำสั่งเนื่องจากไฟล์ SQL ที่เอ็กซ์พอร์ตมีการเรียกที่เกี่ยวข้องเพื่อสร้างตาราง mysql -u your_user_name -p database_name < test.sqlทั้งหมดที่คุณต้องการก็คือ
Michael De Silva

1
นี่คือตัวอย่างจากตารางการส่งออก `22 ตาราง DROP IF EXISTS account_product_prices; 23 / *! 40101 SET @saved_cs_client = @@ character_set_client /; 24 / ! 40101 SET character_set_client = utf8 * /; 25 CREATE TABLE account_product_prices(`
Michael De Silva

5

ก่อนอื่นลงชื่อเข้าใช้ฐานข้อมูลของคุณและตรวจสอบว่าตารางฐานข้อมูลที่คุณต้องการนำเข้าไม่พร้อมใช้งานในฐานข้อมูลของคุณ

หากพร้อมใช้งานให้ลบตารางโดยใช้คำสั่ง มิฉะนั้นจะเกิดข้อผิดพลาดขณะนำเข้าตาราง

DROP TABLE Table_Name;

จากนั้นย้ายไปยังโฟลเดอร์ที่คุณมี.sqlไฟล์ที่จะนำเข้าและเรียกใช้คำสั่งต่อไปนี้จากสถานีของคุณ

mysql -u username -p  databasename  < yourtable.sql

เทอร์มินัลจะขอให้คุณป้อนรหัสผ่าน ป้อนและตรวจสอบฐานข้อมูล


4

มันทำงานอย่างถูกต้อง ...

C:\>mysql>bin>mysql -u USERNAME DB_NAME < tableNameFile.sql

โปรดทราบว่าไฟล์. sql ระบุฐานข้อมูลปัจจุบันของคุณ ..


2

เราสามารถนำเข้าตารางเดียวโดยใช้ CMD ดังต่อไปนี้:

D:\wamp\bin\mysql\mysql5.5.24\bin>mysql -h hostname -u username -p passowrd databasename < filepath

2

หากคุณมีตารางที่ต้องการในฐานข้อมูลของคุณก่อนลบมันแล้วเรียกใช้คำสั่งด้านล่าง:

 mysql -u username -p  databasename  < yourtable.sql

2

จากเซิร์ฟเวอร์เป็นท้องถิ่น (ส่งออก)

mysqldump -u username -p db_name table_name > path/filename.sql;
mysqldump -u root -p remotelab welcome_ulink > 
/home_local/ladmin/kakalwar/base/welcome_ulink.sql;

จากภายในสู่เซิร์ฟเวอร์ (กำลังนำเข้า)

mysql -u username -p -D databasename < path/x/y/z/welcome_queue.sql
mysql -u root -p -D remotelab < 
/home_local/ladmin/kakalwar/instant_status/db_04_12/welcome_queue.sql

2
สำหรับผู้เริ่มต้นโปรดทราบว่าคุณต้องใช้งานจากเทอร์มินัลที่ไม่ได้อยู่ใน mysql หลังจากกดปุ่มคำสั่งมันจะถามรหัสผ่าน db_password
Venkatesh Kakalwar

2

ยังทำงานอยู่ ในรูปแบบคำสั่ง

cd C:\wamp\bin\mysql\mysql5.5.8\bin //hit enter
mysql -u -p databasename //-u=root,-p=blank

2
  • มันจะเป็นการรวมกันของEXPORT INTO OUTFILEและLOAD DATA INFILE

  • คุณต้องส่งออกตารางเดียวด้วยEXPORT INTO OUTFILEซึ่งจะส่งออกข้อมูลตารางไปยังไฟล์ คุณสามารถนำเข้าตารางนั้นโดยใช้LOAD DATA INFILE

  • อ้างอิงdoc1 , doc2


1

คุณสามารถทำได้ในคำสั่ง mysql แทนคำสั่ง linux
1. ใช้ mysql ของคุณ
2. ดำเนินการในคำสั่ง mysql:
use DATABASE_NAME;
SET autocommit=0 ; source ABSOLUTE_PATH/TABLE_SQL_FILE.sql ; COMMIT ;


1
mysql -u root -p -D dbname < tablename.sql

1
ในขณะที่ข้อมูลโค้ดยินดีต้อนรับและอาจให้ความช่วยเหลือบางอย่าง แต่ก็จะดีขึ้นอย่างมากหากมีคำอธิบายเกี่ยวกับวิธีการและสาเหตุที่แก้ไขปัญหาได้ โปรดจำไว้ว่าคุณกำลังตอบคำถามสำหรับผู้อ่านในอนาคตไม่ใช่เพียงแค่คนที่ถามตอนนี้! โปรดแก้ไขคำตอบของคุณเพื่อเพิ่มคำอธิบายและระบุข้อ จำกัด และสมมติฐานที่ใช้
Toby Speight


0

การใช้ฐานข้อมูลชั่วคราวอาจเป็นโซลูชันขึ้นอยู่กับขนาดของฐานข้อมูล

mysql -u [username] -p -e "create database tempdb"
mysql -u [username] -p tempdb < db.sql
mysqldump -u [username] -p tempdb _table_to_import_ > table_to_import.sql
mysql -u [username] -p maindb < table_to_import.sql

0

ที่จะนำเข้าตารางลงในฐานข้อมูลถ้าตารางมีอยู่แล้วที่มีอยู่แล้วเพิ่มบรรทัดนี้ในไฟล์ SQL ของคุณและเรียกใช้คำสั่งDROP TABLE IF EXIST 'table_name' mysql -u username -p database_name < import_sql_file.sqlกรุณาตรวจสอบเส้นทางของไฟล์ sql ก่อนดำเนินการคำสั่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.