13.2.7 & nbsp; tải dữ liệu tải
LOAD DATA
[LOW_PRIORITY | CONCURRENT] [LOCAL]
INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[PARTITION [partition_name [, partition_name] ...]]
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number {LINES | ROWS}]
[[col_name_or_user_var
[, col_name_or_user_var] ...]]
[SET col_name={expr | DEFAULT}
[, col_name={expr | DEFAULT}] ...]
Câu lệnh
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 đọc các hàng từ tệp văn bản vào một bảng ở tốc độ rất cao. Tệp có thể được đọc từ máy chủ máy chủ hoặc máy chủ khách, tùy thuộc vào việc sửa đổi FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
5 được đưa ra. FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
5 cũng ảnh hưởng đến việc giải thích dữ liệu và xử lý lỗi.
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 là bổ sung của FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
8. . Để đọc lại tệp vào bảng, hãy sử dụng FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4. Cú pháp của các mệnh đề LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
1 và LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
2 là giống nhau cho cả hai câu lệnh.Tiện ích MySQLImport cung cấp một cách khác để tải các tệp dữ liệu; Nó hoạt động bằng cách gửi câu lệnh
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 đến máy chủ. Xem Phần & NBSP; 4.5.5, MySQLImport - một chương trình nhập dữ liệu.mysqlimport utility provides another way to load data files; it operates by sending a FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 statement to the server. See
Section 4.5.5, “mysqlimport — A Data Import Program”. Để biết thông tin về hiệu quả của
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
4 so với FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 và tăng tốc FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4, xem Phần & NBSP; 8.2.5.1, Tối ưu hóa các câu lệnh chèn.Hoạt động phi địa phương so với địa phương
Bộ ký tự tệp đầu vào
Vị trí tệp đầu vào
Yêu cầu bảo mật
Khóa trùng lặp và xử lý lỗi
Xử lý chỉ mục
Xử lý trường và dòng
Đặc tả danh sách cột
Tiền xử lý đầu vào
Gán giá trị cột
Hỗ trợ bảng phân vùng
Cân nhắc đồng thời
Thông tin kết quả tuyên bố
Cân nhắc nhân rộng
Chủ đề linh tinh
Bộ ký tự tệp đầu vào
Vị trí tệp đầu vào
Yêu cầu bảo mật“no conversion.”
Khóa trùng lặp và xử lý lỗi
Xử lý chỉ mụcmysqldump -T or by issuing a
xxx"abc",1
something xxx"def",2
"ghi",3
4 statement in
mysql, be sure to use a xxx"abc",1
something xxx"def",2
"ghi",3
5 option to write output in the character set to be used when the file is loaded with
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4. Xử lý trường và dòng
Đặc tả danh sách cột
Vị trí tệp đầu vào
Yêu cầu bảo mật
Khóa trùng lặp và xử lý lỗi
Xử lý chỉ mục
Xử lý trường và dòng
Đặc tả danh sách cột
Tiền xử lý đầu vào
Gán giá trị cột
Hỗ trợ bảng phân vùng
Cân nhắc đồng thời
Thông tin kết quả tuyên bố
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Xử lý trường và dòng
Đặc tả danh sách cột
Yêu cầu bảo mật
Khóa trùng lặp và xử lý lỗi
Bạn phải có đặc quyền
8. Xem Phần & NBSP; 6.2.2, Đặc quyền của người Hồi giáo được cung cấp bởi MySQL.SELECT * INTO OUTFILE 'data.txt' FIELDS TERMINATED BY ',' FROM table2;
Hoạt động phải tuân theo cài đặt biến hệ thống
9:SELECT * INTO OUTFILE 'data.txt' FIELDS TERMINATED BY ',' FROM table2;
Nếu giá trị biến là tên thư mục không trống, tệp phải được đặt trong thư mục đó.
Nếu giá trị biến trống [không an toàn], tệp chỉ cần có thể đọc được bởi máy chủ.
Đối với hoạt động tải
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
5, chương trình máy khách đọc một tệp văn bản nằm trên máy chủ khách. Bởi vì nội dung tệp được gửi qua kết nối bởi máy khách đến máy chủ, sử dụng FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
5 chậm hơn một chút so với khi máy chủ truy cập trực tiếp vào tệp. Mặt khác, bạn không cần đặc quyền SELECT * INTO OUTFILE 'data.txt'
FIELDS TERMINATED BY ','
FROM table2;
8 và tệp có thể được đặt trong bất kỳ thư mục nào mà chương trình máy khách có thể truy cập.Khóa trùng lặp và xử lý lỗi
Bộ điều chỉnh
LOAD DATA INFILE 'data.txt' INTO TABLE table2
FIELDS TERMINATED BY ',';
3 và LOAD DATA INFILE 'data.txt' INTO TABLE table2
FIELDS TERMINATED BY ',';
4 Điều khiển xử lý các hàng mới [đầu vào] sao chép các hàng bảng hiện có trên các giá trị khóa duy nhất [LOAD DATA INFILE 'data.txt' INTO TABLE table2
FIELDS TERMINATED BY ',';
5 hoặc LOAD DATA INFILE 'data.txt' INTO TABLE table2
FIELDS TERMINATED BY ',';
6 Giá trị chỉ mục]:Với
3, các hàng mới có cùng giá trị như giá trị khóa duy nhất trong một hàng hiện tại thay thế hàng hiện có. Xem Phần & NBSP; 13.2.9, Tuyên bố thay thế.LOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY ',';
Với
4, các hàng mới sao chép một hàng hiện có trên một giá trị khóa duy nhất bị loại bỏ. Để biết thêm thông tin, hãy xem ảnh hưởng của việc bỏ qua đối với việc thực thi tuyên bố.LOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY ',';
Công cụ sửa đổi
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
5 có tác dụng tương tự như LOAD DATA INFILE 'data.txt' INTO TABLE table2
FIELDS TERMINATED BY ',';
4. Điều này xảy ra vì máy chủ không có cách nào để dừng truyền tệp ở giữa hoạt động.Nếu không có
LOAD DATA INFILE 'data.txt' INTO TABLE table2
FIELDS TERMINATED BY ',';
3, LOAD DATA INFILE 'data.txt' INTO TABLE table2
FIELDS TERMINATED BY ',';
4 hoặc FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
5 được chỉ định, xảy ra lỗi khi tìm thấy giá trị khóa trùng lặp và phần còn lại của tệp văn bản bị bỏ qua.Ngoài việc ảnh hưởng đến việc xử lý khóa trùng lặp như vừa mô tả,
LOAD DATA INFILE 'data.txt' INTO TABLE table2
FIELDS TERMINATED BY ',';
4 và FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
5 còn ảnh hưởng đến việc xử lý lỗi:Không có
4 vàLOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY ',';
5, các lỗi giải thích dữ liệu chấm dứt hoạt động.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Với
4 hoặcLOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY ',';
5, các lỗi giải thích dữ liệu trở thành cảnh báo và hoạt động tải tiếp tục, ngay cả khi chế độ SQL bị hạn chế. Để biết ví dụ, xem gán giá trị cột.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Xử lý trường và dòng
Đối với cả các câu lệnh
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 và LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
1, cú pháp của các mệnh đề LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
1 và LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
2 là như nhau. Cả hai mệnh đề đều là tùy chọn, nhưng LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
1 phải đi trước LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
2 nếu cả hai được chỉ định.Nếu bạn chỉ định một mệnh đề
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
1, mỗi phân nhóm của nó [LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
7, LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
8 và LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
9] cũng là tùy chọn, ngoại trừ bạn phải chỉ định ít nhất một trong số chúng. Các đối số cho các mệnh đề này được phép chỉ chứa các ký tự ASCII.Nếu bạn chỉ định điều khoản không
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
1 hoặc LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
2, các mặc định giống như khi bạn đã viết điều này:FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
Backslash là ký tự thoát MySQL trong các chuỗi trong các câu lệnh SQL. Do đó, để chỉ định một dấu gạch chéo ngược theo nghĩa đen, bạn phải chỉ định hai dấu gạch chéo ngược cho giá trị được hiểu là một dấu gạch chéo ngược. Trình tự thoát
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
02 và LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
03 chỉ định các ký tự Tab và Newline tương ứng.Nói cách khác, mặc định khiến
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;
1 hoạt động như sau khi đọc đầu vào:Tìm kiếm ranh giới dòng tại Newlines.
Không bỏ qua bất kỳ tiền tố dòng.
Phá vỡ các dòng thành các trường tại các tab.
Không mong đợi các trường sẽ được đặt trong bất kỳ ký tự trích dẫn nào.
Giải thích các ký tự trước ký tự Escape
05 dưới dạng trình tự thoát. Ví dụ:LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
06,LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
07 vàLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
08 có nghĩa là tab, newline và dấu gạch chéo ngược, tương ứng. Xem cuộc thảo luận củaLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
09 sau để biết danh sách đầy đủ các chuỗi thoát.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Ngược lại, các mặc định khiến
LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
1 hành động như sau khi viết đầu ra:Viết tab giữa các trường.
Không gửi các trường trong bất kỳ ký tự trích dẫn nào.
Sử dụng
05 để thoát khỏi các trường hợp của Tab, Newline hoặcLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
05 xảy ra trong các giá trị trường.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Viết Newlines ở cuối dòng.
Ghi chú
Đối với một tệp văn bản được tạo trên hệ thống Windows, việc đọc tệp thích hợp có thể yêu cầu
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
13 vì các chương trình Windows thường sử dụng hai ký tự làm bộ kết thúc dòng. Một số chương trình, chẳng hạn như WordPad, có thể sử dụng LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
14 làm người kết thúc dòng khi viết tệp. Để đọc các tệp như vậy, hãy sử dụng LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
15.WordPad, might use LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
14
as a line terminator when writing files. To read such files, use LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
15. Nếu tất cả các dòng đầu vào có một tiền tố chung mà bạn muốn bỏ qua, bạn có thể sử dụng
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
16 'để bỏ qua tiền tố và bất cứ điều gì trước đó. Nếu một dòng không bao gồm tiền tố, toàn bộ dòng bị bỏ qua. Giả sử rằng bạn đưa ra tuyên bố sau:and anything before it. If a line does not include the prefix, the entire line is skipped. Suppose that you issue the following statement: LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
Nếu tệp dữ liệu trông như thế này:
xxx"abc",1
something xxx"def",2
"ghi",3
Các hàng kết quả là
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
17 và LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
18. Hàng thứ ba trong tệp bị bỏ qua vì nó không chứa tiền tố.Mệnh đề dòng
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
19 có thể được sử dụng để bỏ qua các dòng khi bắt đầu tệp. Ví dụ: bạn có thể sử dụng LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
20 để bỏ qua một dòng tiêu đề ban đầu chứa tên cột:LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;
Khi bạn sử dụng
xxx"abc",1
something xxx"def",2
"ghi",3
4 song song với FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 để ghi dữ liệu từ cơ sở dữ liệu vào một tệp và sau đó đọc lại tệp vào cơ sở dữ liệu sau đó, các tùy chọn xử lý trường và dòng cho cả hai câu lệnh phải khớp. Mặt khác, LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;
1 không diễn giải nội dung của tệp đúng cách. Giả sử rằng bạn sử dụng LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
1 để viết một tệp với các trường được phân tách bằng dấu phẩy:SELECT * INTO OUTFILE 'data.txt'
FIELDS TERMINATED BY ','
FROM table2;
Để đọc tệp phân loại dấu phẩy, câu lệnh chính xác là:
LOAD DATA INFILE 'data.txt' INTO TABLE table2
FIELDS TERMINATED BY ',';
Nếu thay vào đó, bạn đã cố gắng đọc tệp với câu lệnh được hiển thị sau, nó sẽ không hoạt động vì nó hướng dẫn
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 tìm các tab giữa các trường:LOAD DATA INFILE 'data.txt' INTO TABLE table2
FIELDS TERMINATED BY '\t';
Kết quả có thể là mỗi dòng đầu vào sẽ được hiểu là một trường duy nhất.
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 có thể được sử dụng để đọc các tệp thu được từ các nguồn bên ngoài. Ví dụ, nhiều chương trình có thể xuất dữ liệu theo định dạng giá trị phân tách dấu phẩy [CSV], sao cho các dòng có các trường được phân tách bằng dấu phẩy và được đặt trong các dấu ngoặc kép, với một dòng tên cột ban đầu. Nếu các dòng trong một tệp như vậy bị chấm dứt bởi các cặp return/newline vận chuyển, thì câu lệnh được hiển thị ở đây minh họa các tùy chọn xử lý trường và dòng bạn sẽ sử dụng để tải tệp:LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
Nếu các giá trị đầu vào không nhất thiết được đặt trong các dấu ngoặc kép, hãy sử dụng
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
27 trước tùy chọn LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
28.Bất kỳ tùy chọn xử lý trường hoặc dòng nào cũng có thể chỉ định một chuỗi trống [
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
29]. Nếu không trống, các giá trị LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
30 và LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
31 phải là một ký tự duy nhất. Các giá trị LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
32, LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
33 và LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
34 có thể nhiều hơn một ký tự. Ví dụ: để ghi các dòng bị chấm dứt bởi các cặp trả về vận chuyển/linefeed hoặc để đọc một tệp chứa các dòng đó, chỉ định mệnh đề LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
35.Để đọc một tệp chứa những trò đùa được phân tách bằng các dòng bao gồm
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
36, bạn có thể làm điều nàyLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
0
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
30 Kiểm soát trích dẫn các trường. Đối với đầu ra [LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
1], nếu bạn bỏ qua từ LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
27, tất cả các trường được đặt bởi ký tự LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
28. Một ví dụ về đầu ra đó [sử dụng dấu phẩy làm dấu phân cách trường] được hiển thị ở đây:LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
1Nếu bạn chỉ định
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
27, ký tự LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
28 chỉ được sử dụng để đặt các giá trị từ các cột có kiểu dữ liệu chuỗi [chẳng hạn như LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
43, LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
44, LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
45 hoặc LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
46]:LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
2Sự xuất hiện của ký tự
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
28 trong một giá trị trường được thoát ra bằng tiền tố chúng với ký tự LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
9. Ngoài ra, nếu bạn chỉ định giá trị LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
9 trống, có thể vô tình tạo ra đầu ra không thể đọc đúng bởi FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4. Ví dụ, đầu ra trước chỉ hiển thị sẽ xuất hiện như sau nếu ký tự thoát trống. Quan sát rằng trường thứ hai trong dòng thứ tư chứa dấu phẩy theo trích dẫn, [sai lầm] dường như chấm dứt trường:LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
3Đối với đầu vào, ký tự
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
28, nếu có, bị tước khỏi các đầu của các giá trị trường. .Nếu trường bắt đầu với ký tự
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
28, các trường hợp của ký tự đó được công nhận là kết thúc một giá trị trường chỉ khi theo sau là chuỗi trường hoặc dòng LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
7. Để tránh sự mơ hồ, sự xuất hiện của ký tự LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
28 trong một giá trị trường có thể được nhân đôi và được hiểu là một trường hợp duy nhất của ký tự. Ví dụ: nếu LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
59 được chỉ định, dấu ngoặc kép được xử lý như thể hiện ở đây:LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
4
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
31 Kiểm soát cách đọc hoặc viết các ký tự đặc biệt:Đối với đầu vào, nếu ký tự
31 không trống, sự xuất hiện của ký tự đó bị tước và ký tự sau được lấy theo nghĩa đen như là một phần của giá trị trường. Một số trình tự hai ký tự là ngoại lệ, trong đó nhân vật đầu tiên là ký tự thoát. Các chuỗi này được hiển thị trong bảng sau [sử dụngLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
05 cho ký tự thoát]. Các quy tắc để xử lýLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63 được mô tả sau trong phần này.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Tính cáchTrình tự thoát
64LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Một nhân vật ASCII NUL [
65]LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
66LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Một ký tự backspace
07LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Một ký tự dòng mới [linefeed]
14LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Một nhân vật trở lại vận chuyển
06LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Một ký tự tab.
70LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
ASCII 26 [Control+Z]
71LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
VÔ GIÁ TRỊ Để biết thêm thông tin về cú pháp ____ 105-escape, xem Phần & NBSP; 9.1.1, Chuỗi chuỗi chữ.
Nếu ký tự
31 trống, việc giải thích chuỗi thoát không xảy ra.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Đối với đầu ra, nếu ký tự
31 không trống, nó được sử dụng để tiền tố các ký tự sau trên đầu ra:LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Nhân vật
31.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Nhân vật
30.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Ký tự đầu tiên của các giá trị
77 vàLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
78, nếu ký tựLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
28 trống hoặc không xác định.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
ASCII
80 [những gì thực sự được viết theo ký tự thoát là ASCIILOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
80, không phải là một Byte có giá trị bằng không].LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Nếu ký tự
31 trống, không có ký tự nào được thoát vàLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63 là đầu ra làLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63, không phảiLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
71. Có lẽ không phải là một ý tưởng tốt để chỉ định một ký tự thoát trống, đặc biệt nếu các giá trị trường trong dữ liệu của bạn chứa bất kỳ ký tự nào trong danh sách vừa được đưa ra.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Trong một số trường hợp nhất định, các tùy chọn xử lý trường và dòng tương tác:
Nếu
78 là một chuỗi trống vàLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
32 là không trống, các dòng cũng bị chấm dứt vớiLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
88.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Nếu các giá trị
32 vàLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
90 đều trống [LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
29], định dạng hàng cố định [không giới hạn] được sử dụng. Với định dạng hàng cố định, không có trình phân cách nào được sử dụng giữa các trường [nhưng bạn vẫn có thể có một thiết bị kết thúc dòng]. Thay vào đó, các giá trị cột được đọc và viết bằng một chiều rộng trường đủ rộng để giữ tất cả các giá trị trong trường. Đối vớiLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
92,LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
93,LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
94,LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
95 vàLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
96, chiều rộng trường lần lượt là 4, 6, 8, 11 và 20, bất kể chiều rộng hiển thị được khai báo là bao nhiêu.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
78 vẫn được sử dụng để tách các dòng. Nếu một dòng không chứa tất cả các trường, phần còn lại của các cột được đặt thành các giá trị mặc định của chúng. Nếu bạn không có bộ kết thúc dòng, bạn nên đặt nó thànhLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
29. Trong trường hợp này, tệp văn bản phải chứa tất cả các trường cho mỗi hàng.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Định dạng hàng cố định cũng ảnh hưởng đến việc xử lý các giá trị
63, như được mô tả sau.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Ghi chú
Định dạng kích thước cố định không hoạt động nếu bạn đang sử dụng một bộ ký tự Multibyte.
Xử lý các giá trị
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63 khác nhau tùy theo các tùy chọn LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
1 và LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
2 đang sử dụng:Đối với các giá trị
1 vàLOAD DATA INFILE '/tmp/test.txt' INTO TABLE test FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
2 mặc định,LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
63 được viết dưới dạng giá trị trường làLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
71 cho đầu ra và giá trị trường củaLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
71 được đọc làLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63 cho đầu vào [giả sử rằng ký tựLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
9 làLOAD DATA INFILE 'data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;
05].LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Nếu
90 không trống, một trường chứa từ theo nghĩa đenLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63 vì giá trị của nó được đọc là giá trịLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63. Điều này khác với từLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63 được đặt trongLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
90 ký tự, được đọc dưới dạng chuỗiLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
16.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Nếu
31 trống,LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63 được viết là từLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Với định dạng hàng cố định [được sử dụng khi
20 vàFIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
21 đều trống],FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
63 được viết dưới dạng một chuỗi trống. Điều này khiến cả giá trịLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63 và chuỗi trống trong bảng phải không thể phân biệt khi được ghi vào tệp vì cả hai đều được viết dưới dạng chuỗi trống. Nếu bạn cần có khả năng phân biệt hai người khi đọc lại tệp, bạn không nên sử dụng định dạng hàng cố định.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Một nỗ lực để tải
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63 vào cột FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
25 tạo ra cảnh báo hoặc lỗi theo các quy tắc được mô tả trong gán giá trị cột.Một số trường hợp không được hỗ trợ bởi
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;
1:Các hàng có kích thước cố định [
32 vàLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
90 cả trống] và các cộtLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
29 hoặcFIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
45.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Nếu bạn chỉ định một phân tách giống như hoặc tiền tố của một phân tách khác,
4 không thể giải thích đầu vào đúng cách. Ví dụ, mệnh đềFIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
1 sau đây sẽ gây ra vấn đề:LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
5LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Nếu
31 trống, giá trị trường chứa sự xuất hiện củaLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
34 hoặcFIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
35, sau đó là giá trịFIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
88 khiếnLOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
37 ngừng đọc trường hoặc dòng quá sớm. Điều này xảy ra bởi vìFIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
37 không thể xác định đúng nơi giá trị trường hoặc dòng kết thúc.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Đặc tả danh sách cột
Ví dụ sau tải tất cả các cột của bảng
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
39:LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
6Theo mặc định, khi không có danh sách cột nào được cung cấp ở cuối câu lệnh
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4, các dòng đầu vào dự kiến sẽ chứa một trường cho mỗi cột bảng. Nếu bạn chỉ muốn tải một số cột của bảng, hãy chỉ định danh sách cột:LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
7Bạn cũng phải chỉ định danh sách cột nếu thứ tự của các trường trong tệp đầu vào khác với thứ tự của các cột trong bảng. Mặt khác, MySQL không thể cho biết cách khớp các trường đầu vào với các cột bảng.
Tiền xử lý đầu vào
Mỗi phiên bản của
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
41 trong cú pháp FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 là tên cột hoặc biến người dùng. Với các biến người dùng, mệnh đề FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
43 cho phép bạn thực hiện các biến đổi tiền xử lý trên các giá trị của chúng trước khi gán kết quả cho các cột.Các biến người dùng trong mệnh đề
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
43 có thể được sử dụng theo nhiều cách. Ví dụ sau sử dụng cột đầu vào đầu tiên trực tiếp cho giá trị của FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
45 và gán cột đầu vào thứ hai cho biến người dùng chịu hoạt động phân chia trước khi được sử dụng cho giá trị FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
46:LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
8Điều khoản
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
43 có thể được sử dụng để cung cấp các giá trị không có nguồn gốc từ tệp đầu vào. Câu lệnh sau đây đặt FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
48 cho ngày và giờ hiện tại:LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
9Bạn cũng có thể loại bỏ giá trị đầu vào bằng cách gán nó cho biến người dùng và không gán biến cho bất kỳ cột bảng nào:
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
0Việc sử dụng danh sách cột/biến và mệnh đề
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
43 phải tuân theo các hạn chế sau:Các bài tập trong mệnh đề
43 chỉ nên có tên cột ở phía bên trái của toán tử gán.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Bạn có thể sử dụng các phần tử con ở phía bên tay phải của các bài tập
43. Một truy vấn con trả về một giá trị được gán cho một cột chỉ có thể là một truy vấn con vô hướng. Ngoài ra, bạn không thể sử dụng một truy vấn con để chọn từ bảng đang được tải.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Các dòng bị bỏ qua bởi một mệnh đề dòng
52 không được xử lý cho danh sách cột/biến hoặc mệnh đềFIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
43.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Không thể sử dụng các biến người dùng khi tải dữ liệu với định dạng hàng cố định vì các biến người dùng không có chiều rộng hiển thị.
Gán giá trị cột
Để xử lý một dòng đầu vào,
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;
1 chia nó thành các trường và sử dụng các giá trị theo danh sách cột/biến và mệnh đề FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
43, nếu chúng có mặt. Sau đó hàng kết quả được chèn vào bảng. Nếu có FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
56 hoặc FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
57 kích hoạt cho bảng, chúng sẽ được kích hoạt trước hoặc sau khi chèn hàng, tương ứng.Giải thích các giá trị trường và gán cho các cột bảng phụ thuộc vào các yếu tố sau:
Chế độ SQL [giá trị của biến hệ thống
58]. Chế độ có thể không bị hạn chế hoặc hạn chế theo nhiều cách khác nhau. Ví dụ: chế độ SQL nghiêm ngặt có thể được bật hoặc chế độ có thể bao gồm các giá trị nhưFIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
59 hoặcFIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
60.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Sự hiện diện hoặc vắng mặt của các sửa đổi
4 vàLOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY ',';
5.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Những yếu tố đó kết hợp để tạo ra sự giải thích dữ liệu hạn chế hoặc không hạn chế bằng cách
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4:Giải thích dữ liệu bị hạn chế nếu chế độ SQL bị hạn chế và cả công cụ sửa đổi
4 vàLOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY ',';
5 đều không được chỉ định. Lỗi chấm dứt hoạt động tải.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Giải thích dữ liệu là không hạn chế nếu chế độ SQL không bị hạn chế hoặc công cụ sửa đổi
4 hoặcLOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY ',';
5 được chỉ định. .overrides a restrictive SQL mode.] Errors become warnings and the load operation continues.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Giải thích dữ liệu hạn chế sử dụng các quy tắc sau:
Quá nhiều hoặc quá ít trường kết quả là một lỗi.
Việc gán
63 [nghĩa là,LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
71] cho một cột không phải là -____ 163 dẫn đến một lỗi.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Một giá trị nằm ngoài phạm vi cho kiểu dữ liệu cột dẫn đến một lỗi.
Giá trị không hợp lệ tạo ra lỗi. Ví dụ: một giá trị như
71 cho một cột số dẫn đến lỗi, không chuyển đổi thành 0.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Ngược lại, giải thích dữ liệu không hạn chế sử dụng các quy tắc này:
Nếu một dòng đầu vào có quá nhiều trường, các trường bổ sung bị bỏ qua và số lượng cảnh báo được tăng lên.
Nếu một dòng đầu vào có quá ít trường, các cột mà các trường đầu vào bị thiếu được gán giá trị mặc định của chúng. Gán giá trị mặc định được mô tả trong Phần & NBSP; 11.6, Kiểu dữ liệu Giá trị mặc định.
Gán
63 [nghĩa là,LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
71] cho một cột không phải là -____ 163 dẫn đến việc gán giá trị mặc định ngầm cho kiểu dữ liệu cột. Các giá trị mặc định ngầm được mô tả trong Phần & NBSP; 11.6, Kiểu dữ liệu Giá trị mặc định.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Các giá trị không hợp lệ tạo ra các cảnh báo thay vì lỗi và được chuyển đổi thành giá trị hợp lệ của gần nhất cho loại dữ liệu cột. Ví dụ:“closest” valid value for the column data type. Examples:
Một giá trị như
71 cho một cột số dẫn đến chuyển đổi thành 0.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Một giá trị số hoặc thời gian ngoài phạm vi được cắt theo điểm cuối gần nhất của phạm vi cho kiểu dữ liệu cột.
Giá trị không hợp lệ cho cột
76,FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
77 hoặcFIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
78 được chèn dưới dạng giá trị mặc định ngầm, bất kể cài đặt Chế độ SQLFIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
59. Mặc định ngầm định là giá trị không phù hợp với loại không đối với loại [FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
80,FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
81 hoặcFIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
82]. Xem Phần & NBSP; 11.2, các loại dữ liệu ngày và thời gian.“zero” value for the type [FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
80,FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
81, orFIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
82]. See Section 11.2, “Date and Time Data Types”.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
4 diễn giải một giá trị trường trống khác với trường bị thiếu:FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Đối với các loại chuỗi, cột được đặt thành chuỗi trống.
Đối với các loại số, cột được đặt thành
80.LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Đối với các loại ngày và thời gian, cột được đặt thành giá trị Zero Zero thích hợp cho loại. Xem Phần & NBSP; 11.2, các loại dữ liệu ngày và thời gian.“zero” value for the type. See Section 11.2, “Date and Time Data Types”.
Đây là những giá trị giống nhau kết quả nếu bạn gán một chuỗi trống một cách rõ ràng cho một chuỗi, số hoặc ngày hoặc loại thời gian rõ ràng trong câu lệnh
4 hoặcLOAD DATA INFILE '/tmp/test.txt' INTO TABLE test FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
86.FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY ''
Các cột
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
87 được đặt thành ngày và thời gian hiện tại chỉ khi có giá trị LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63 cho cột [nghĩa là LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
71] và cột không được khai báo để cho phép các giá trị LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
63 hoặc nếu giá trị của cột FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
87 là thời gian hiện tại và nó được bỏ qua khỏi danh sách trường khi một danh sách trường được chỉ định.
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 coi tất cả các đầu vào là chuỗi, vì vậy bạn không thể sử dụng các giá trị số cho các cột LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
46 hoặc FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
43 theo cách bạn có thể với các câu lệnh LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
4. Tất cả các giá trị LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
46 và FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
43 phải được chỉ định là chuỗi.Các giá trị
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
98 không thể được tải trực tiếp bằng cách sử dụng ký hiệu nhị phân [ví dụ: FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
99]. Để làm việc xung quanh điều này, hãy sử dụng mệnh đề FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
43 để loại bỏ LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
01 hàng đầu và theo dõi LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
02 và thực hiện chuyển đổi cơ sở-2 sang cơ sở-10 để MySQL tải các giá trị vào cột FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
98 đúng cách:FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
1Đối với các giá trị
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
98 trong ký hiệu nhị phân LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
05 [ví dụ: LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
06], hãy sử dụng điều khoản FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
43 này để loại bỏ LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
05 hàng đầu:FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
2Hỗ trợ bảng phân vùng
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 hỗ trợ lựa chọn phân vùng rõ ràng bằng mệnh đề LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
10 với danh sách một hoặc nhiều tên phân tách dấu phẩy của các phân vùng, phân vùng hoặc cả hai. Khi mệnh đề này được sử dụng, nếu bất kỳ hàng nào từ tệp không thể được chèn vào bất kỳ phân vùng hoặc phân vùng nào có tên trong danh sách, câu lệnh không thành công với lỗi tìm thấy một hàng không khớp với bộ phân vùng đã cho. Để biết thêm thông tin và ví dụ, xem Phần & NBSP; 24.5, Lựa chọn phân vùng.Found a row not matching the given partition set. For more information and examples, see Section 24.5, “Partition Selection”. Cân nhắc đồng thời
Với công cụ sửa đổi
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
11, việc thực thi câu lệnh FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 bị trì hoãn cho đến khi không có máy khách nào khác đọc từ bảng. Điều này chỉ ảnh hưởng đến các công cụ lưu trữ chỉ sử dụng khóa cấp bảng [chẳng hạn như LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
13, LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
14 và LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
15].Với công cụ sửa đổi
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
16 và bảng LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
13 thỏa mãn điều kiện để chèn đồng thời [nghĩa là, nó không chứa các khối miễn phí ở giữa], các luồng khác có thể lấy dữ liệu từ bảng trong khi FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 đang thực thi. Trình sửa đổi này ảnh hưởng đến hiệu suất của LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;
1 một chút, ngay cả khi không có luồng nào khác sử dụng bảng cùng một lúc.Cân nhắc nhân rộng
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 được coi là không an toàn cho sao chép dựa trên tuyên bố. Nếu bạn sử dụng FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 với LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
22, mỗi bản sao mà các thay đổi sẽ được áp dụng sẽ tạo ra một tệp tạm thời chứa dữ liệu. Tệp tạm thời này không được mã hóa, ngay cả khi mã hóa nhật ký nhị phân hoạt động trên nguồn, nếu cần mã hóa, hãy sử dụng định dạng ghi nhị phân dựa trên hàng hoặc hỗn hợp thay thế, thay vào đó, các bản sao không tạo tệp tạm thời. Để biết thêm thông tin về sự tương tác giữa FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 và sao chép, xem Phần & NBSP; 17.5.1.19, Dữ liệu sao chép và tải dữ liệu.Chủ đề linh tinh
Trên Unix, nếu bạn cần
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
4 để đọc từ đường ống, bạn có thể sử dụng kỹ thuật sau [ví dụ tải một danh sách thư mục LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
25 vào bảng LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';
26]:FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
3Tại đây, bạn phải chạy lệnh tạo dữ liệu sẽ được tải và các lệnh MySQL trên các thiết bị đầu cuối riêng biệt hoặc chạy quy trình tạo dữ liệu trong nền [như trong ví dụ trước]. Nếu bạn không làm điều này, đường ống sẽ chặn cho đến khi dữ liệu được đọc bởi quy trình MySQL.mysql commands either on separate terminals, or run the data generation process in the background [as shown in the preceding example]. If you do not do this, the pipe blocks until data is read by the mysql process.