14/08/2018, 11:48

Import và phương thức Recovery trong MySQL

Có hai cách đơn giản trong MySQL để tải dữ liệu vào trong MySQL Database từ một file đa được sao lưu trước đó. Import với LOAD DATA MySQL cung cấp một lệnh LOAD DATA mà hoạt động như một Bulk Data Loader. Ví dụ về lệnh sau sẽ đọc một file là dump.txt từ thư mục hiện tại của bạn và tải nó ...

Có hai cách đơn giản trong MySQL để tải dữ liệu vào trong MySQL Database từ một file đa được sao lưu trước đó.

Import với LOAD DATA

MySQL cung cấp một lệnh LOAD DATA mà hoạt động như một Bulk Data Loader. Ví dụ về lệnh sau sẽ đọc một file là dump.txt từ thư mục hiện tại của bạn và tải nó vào trong bảng sinhvienk60 trong cơ sở dữ liệu hiện tại:

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE sinhvienk60;
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE sinhvienk60
  -> FIELDS TERMINATED BY ':'
  -> LINES TERMINATED BY '
';
mysql> LOAD DATA LOCAL INFILE 'dump.txt' 
    -> INTO TABLE sinhvienk60 (b, c, a);

Import với mysqlimport

MySQL cũng cung cấp một chương trình tiện ích tên là mysqlimport mà hoạt động như một Wrapper xung quanh LOAD DATA để mà bạn có thể tải input file một cách trực tiếp từ command line.

Để tải một file từ dump.txt vào trong sinhvienk60, sử dụng lệnh sau tại UNIX prompt.

$ mysqlimport -u root -p --local ten_database dump.txt
password *****

Nếu bạn sử dụng mysqlimport, tùy chọn command-line cung cấp các Format specidier. Các lệnh mysqlimport mà tương ứng với hai lệnh LOAD DATA trước đó sẽ trông giống như:

$ mysqlimport -u root -p --local --fields-terminated-by=":" 
   --lines-terminated-by="
"  ten_database dump.txt
password *****

Thứ tự trong đó bạn xác định các tùy chọn không là vấn đề với mysqlimport, ngoại trừ rằng chúng nên đặt ở trước database name.

Lệnh mysqlimport sử dụng tùy chọn --column để xác định thứ tự cột.

$ mysqlimport -u root -p --local --columns=b,c,a 
    ten_database dump.txt
password *****

Xử lý trích dẫn và các ký tự đặc biệt

Mệnh đề FIELDS có thể xác định các tùy chọn định dạng khác bên cạnh TERMINATED BY. Theo mặc định, LOAD DATA giả sử rằng các giá trị không được trích dẫn và thông dịch dấu gạch chéo ngược () như là một ký tự thoát cho các ký tự đặc biệt. Để chỉ dẫn giá trị trích dẫn các ký tự một cách tường minh, sử dụng ENCLOSED BY. MySQL sẽ lược ký tự đó từ phần cuối dữ liệu trong khi xử lý input. Để thay đổi ký tự thoát mặc định, sử dụng ESCAPED BY.

Khi bạn xác định ENCLOSED BY để chỉ rằng các ký tự trích dẫn nên bị lược bỏ từ các giá trị dữ liệu, nó là có thể để bao ký tự trích dẫn bên trong giá trị dữ liệu bằng việc sử dụng nó hai lần (tăng gấp đôi) hoặc bằng việc đặt trước nó với ký tự thoát. Ví dụ, nếu ký tự trích dẫn và ký tự thoát là " và , thì giá trị đầu vào là "a""b"c" sẽ được thông dịch là a"b"c.

Với mysqlimport, các tùy chọn command-line tương ứng để xác định giá trị trích dẫn và giá trị thoát là --fields-enclosed-by và --fields-escaped-by.

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài học MySQL phổ biến khác tại code24h:

0