ฉันจะนำเข้าไฟล์. sql ไปยัง SQLite 3 ได้อย่างไร


102

ฉันมีไฟล์. sql ที่มีเนื้อหาต่อไปนี้:

#cat db.sql
create table server(name varchar(50),ipaddress varchar(15),id init)
create table client(name varchar(50),ipaddress varchar(15),id init)

ฉันจะนำเข้าไฟล์นี้ไปยัง SQLite เพื่อให้ไฟล์เหล่านี้ถูกสร้างขึ้นโดยอัตโนมัติได้อย่างไร


sqlite3 DB.db <ข้อผิดพลาด db.sql: SQL ไม่สมบูรณ์: สร้างเซิร์ฟเวอร์ตาราง (ชื่อ varchar (50), ipaddress varchar (15), id init) สร้างไคลเอ็นต์ตาราง (ชื่อ varchar (50), ipaddress varchar (15), id init ) ข้อผิดพลาดนี้หมายความว่าอย่างไร ฉันลองทั้งสองวิธี> .read db.sql และ sqlite3 DB.db <db.sql
webminal.org

คำตอบ:


171

จากพรอมต์ sqlite:

sqlite> .read db.sql

หรือ:

cat db.sql | sqlite3 database.db

นอกจากนี้ SQL ของคุณไม่ถูกต้อง - คุณต้องการ;ในส่วนท้ายของคำสั่งของคุณ:

create table server(name varchar(50),ipaddress varchar(15),id init);
create table client(name varchar(50),ipaddress varchar(15),id init);

sqlite3 DB.db <ข้อผิดพลาด db.sql: SQL ไม่สมบูรณ์: สร้างเซิร์ฟเวอร์ตาราง (ชื่อ varchar (50), ipaddress varchar (15), id init) สร้างไคลเอ็นต์ตาราง (ชื่อ varchar (50), ipaddress varchar (15), id init ) ข้อผิดพลาดนี้หมายความว่าอย่างไร ฉันลองทั้งสองวิธี> .read db.sql และ sqlite3 DB.db <db.sql ... ขอบคุณ
webminal.org

1
ขอบคุณมันใช้งานได้แล้ว ฉันพลาด; และรวมอักขระที่ไม่ถูกต้องเช่น "-" ตอนนี้สบายดีขอบคุณ !!!
webminal.org

@lakshmipathi หากใช้งานได้คุณสามารถทำเครื่องหมายหนึ่งในสองคำตอบที่ตอบคำถามของคุณว่าได้รับการยอมรับโดยคลิกเครื่องหมายถูกใต้การนับคะแนนถัดจากคำตอบ
Dominic Rodger

60

ใช้sqlite3 database.sqlite3 < db.sql. คุณจะต้องตรวจสอบให้แน่ใจว่าไฟล์ของคุณมี SQL ที่ถูกต้องสำหรับ SQLite


ฉันด้วย (ไวยากรณ์บรรทัดคำสั่งของ Windows) ขอบคุณ. แน่นอนว่าช้า แต่
Barton

3
ฉันได้รับการสร้างที่ไม่อดทนจากไฟล์ 40 + Mb .sql ยุติฐานข้อมูล sqlite3.sqlite3 <db.sql ในความโปรดปรานของ sqlite> .read db.sql ทางเลือกที่ช้าพอ ๆ กันปรากฎว่า
Barton


19

หรือคุณสามารถทำได้จากไฟล์ commandline prompt / batch ของ Windows:

sqlite3.exe DB.db ".read db.sql"

โดยที่DB.dbเป็นไฟล์ฐานข้อมูลและdb.sqlคือไฟล์ SQL ที่จะรัน / นำเข้า


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