Câu lệnh mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 đọc các hàng từ tệp văn bản vào bảng với tốc độ rất cao. Tên tệp phải được cung cấp dưới dạng chuỗi ký tự Show Cú pháp của mệnh đề mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x6 và mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x7 cũng áp dụng cho câu lệnh mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x8, như được mô tả sau trong phần này. (Xem thêm Phần 13. 2. 7, “ mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x9 Cú pháp”. ) Để biết thêm thông tin về hiệu quả của FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'0 so với mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 và tăng tốc độ của mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4, hãy xem Phần 7. 2. 16, “Tốc độ của câu lệnh FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'0” Bộ ký tự được chỉ định bởi biến hệ thống FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'4 được sử dụng để diễn giải thông tin trong tệp. FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'5 và cài đặt của FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'6 không ảnh hưởng đến việc diễn giải đầu vào Lưu ý rằng hiện tại không thể tải các tệp dữ liệu sử dụng bộ ký tự FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'7 Kể từ MySQL 5. 1. 6, biến hệ thống FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'8 kiểm soát việc diễn giải tên tệp Bạn cũng có thể tải các tệp dữ liệu bằng cách sử dụng tiện ích mysqlimport; . Tùy chọn mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x50 khiến mysqlimport đọc tệp dữ liệu từ máy khách. Bạn có thể chỉ định tùy chọn mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x51 để có hiệu suất tốt hơn trên các mạng chậm nếu máy khách và máy chủ hỗ trợ giao thức nén. Xem Phần 8. 12, “mysqlimport — Một chương trình nhập dữ liệu” Nếu bạn sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x52, việc thực thi câu lệnh mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x53 bị trì hoãn cho đến khi không có khách hàng nào khác đọc từ bảng Nếu bạn chỉ định mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x54 với một bảng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x55 thỏa mãn điều kiện cho các lần chèn đồng thời (nghĩa là nó không chứa các khối trống ở giữa), các luồng khác có thể truy xuất dữ liệu từ bảng trong khi mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x53 đang thực thi. Sử dụng tùy chọn này ảnh hưởng đến hiệu suất của mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x53 một chút, ngay cả khi không có luồng nào khác đang sử dụng bảng cùng một lúc Từ khóa mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x58, nếu được chỉ định, được diễn giải đối với phần cuối của kết nối máy khách
Lưu ý rằng, trong trường hợp không phải ____158, các quy tắc này có nghĩa là tệp có tên là mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x72 được đọc từ thư mục dữ liệu của máy chủ, trong khi tệp có tên là mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x73 được đọc từ thư mục cơ sở dữ liệu của cơ sở dữ liệu mặc định. Ví dụ: nếu mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x74 là cơ sở dữ liệu mặc định, thì câu lệnh mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x53 sau đây sẽ đọc tệp mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x76 từ thư mục cơ sở dữ liệu cho mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x74, mặc dù câu lệnh rõ ràng tải tệp vào một bảng trong cơ sở dữ liệu mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x78 mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 Tên đường dẫn Windows được chỉ định bằng dấu gạch chéo lên thay vì dấu gạch chéo ngược. Nếu bạn sử dụng dấu gạch chéo ngược, bạn phải nhân đôi chúng Vì lý do bảo mật, khi đọc các tệp văn bản nằm trên máy chủ, các tệp phải nằm trong thư mục cơ sở dữ liệu hoặc tất cả đều có thể đọc được. Ngoài ra, để sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 trên các tệp máy chủ, bạn phải có đặc quyền mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x60. Xem Phần 5. 7. 3, “Đặc quyền do MySQL cung cấp” Sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x58 chậm hơn một chút so với việc cho phép máy chủ truy cập tệp trực tiếp, vì nội dung của tệp phải được máy khách gửi qua kết nối đến máy chủ. Mặt khác, bạn không cần đặc quyền mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x60 để tải các tệp cục bộ mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x58 chỉ hoạt động nếu cả máy chủ và máy khách của bạn đều đã được bật để cho phép. Ví dụ: nếu mysqld được bắt đầu với mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x64, thì mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x58 không hoạt động. Xem Phần 5. 6. 4, “Các vấn đề bảo mật với mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x66” Trên Unix, nếu bạn cần mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x53 để đọc từ một đường ống, bạn có thể sử dụng kỹ thuật sau (ở đây chúng tôi tải danh sách của thư mục mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x68 vào một bảng) mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x Các từ khóa mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x69 và mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x70 kiểm soát việc xử lý các hàng đầu vào sao chép các hàng hiện có trên các giá trị khóa duy nhất Nếu bạn chỉ định mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x69, các hàng đã nhập sẽ thay thế các hàng hiện có. Nói cách khác, các hàng có cùng giá trị cho khóa chính hoặc chỉ mục duy nhất như một hàng hiện có. Xem Phần 13. 2. 6, “ mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x69 Cú pháp” Nếu bạn chỉ định mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x70, các hàng đầu vào trùng lặp với một hàng hiện có trên một giá trị khóa duy nhất sẽ bị bỏ qua. Nếu bạn không chỉ định một trong hai tùy chọn, hành vi sẽ phụ thuộc vào việc từ khóa mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x58 có được chỉ định hay không. Không có mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x58, sẽ 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. Với mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x58, hành vi mặc định giống như khi chỉ định mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x70; Nếu bạn muốn bỏ qua các ràng buộc khóa ngoại trong quá trình tải, bạn có thể đưa ra câu lệnh mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x78 trước khi thực hiện mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x53 Nếu bạn sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 trên một bảng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x55 trống, tất cả các chỉ mục không phải là duy nhất sẽ được tạo trong một đợt riêng biệt (như đối với FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'92). Thông thường, điều này làm cho mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 nhanh hơn nhiều khi bạn có nhiều chỉ mục. Trong một số trường hợp đặc biệt, bạn có thể tạo các chỉ mục nhanh hơn nữa bằng cách tắt chúng bằng FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'94 trước khi tải tệp vào bảng và sử dụng FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'95 để tạo lại các chỉ mục sau khi tải tệp. Xem Phần 7. 2. 16, “Tốc độ của câu lệnh FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'0” mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 là phần bù của mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x8. (Xem Phần 13. 2. 7, “ mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x9 Cú pháp”. ) Để ghi dữ liệu từ bảng vào tệp, hãy sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x8. Để đọc lại tệp vào bảng, hãy sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4. Cú pháp của mệnh đề mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x6 và mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x7 giống nhau cho cả hai câu lệnh. Cả hai mệnh đề đều là tùy chọn, nhưng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x6 phải đứng trước mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x7 nếu cả hai đều được chỉ định Nếu bạn chỉ định một điều khoản mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x6, mỗi điều khoản phụ của nó ( mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x47, mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x48 và mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x49) cũng là tùy chọn, ngoại trừ việc bạn phải chỉ định ít nhất một trong số chúng Nếu bạn chỉ định không có mệnh đề mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x6, các giá trị mặc định sẽ giống như khi bạn viết điều này FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' Nếu bạn chỉ định không có mệnh đề mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x7, các giá trị mặc định sẽ giống như khi bạn viết điều này mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x5 Nói cách khác, các giá trị mặc định khiến mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 hoạt động như sau khi đọc đầu vào
Ngược lại, các giá trị mặc định khiến mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x8 hoạt động như sau khi ghi đầu ra
Dấu gạch chéo ngược là ký tự thoát của MySQL trong các chuỗi, vì vậy để viết mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x408, bạn phải chỉ định hai dấu gạch chéo ngược để giá trị được hiểu là một dấu gạch chéo ngược Ghi chú. Nếu bạn đã tạo tệp văn bản trên hệ thống Windows, bạn có thể phải sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x409 để đọc tệp đúng cách, vì các chương trình Windows thường sử dụng hai ký tự làm dấu kết thúc dòng. Một số chương trình, chẳng hạn như WordPad, có thể sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x410 làm dấu kết thúc dòng khi ghi tệp. Để đọc các tệp như vậy, hãy sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x411 Nếu tất cả các dòng bạn muốn đọc có một tiền tố chung mà bạn muốn bỏ qua, bạn có thể sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x412' để bỏ qua tiền tố đó và bất kỳ thứ gì trước nó. Nếu một dòng không bao gồm tiền tố, toàn bộ dòng sẽ bị bỏ qua. Giả sử rằng bạn đưa ra tuyên bố sau mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x7 Nếu tệp dữ liệu trông như thế này mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x6 Các hàng kết quả sẽ là mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x413 và mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x414. Hàng thứ ba trong tệp sẽ bị bỏ qua vì nó không chứa tiền tố Tùy chọn LINES mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x415 có thể được sử dụng để bỏ qua các dòng ở đầu tệp. Ví dụ: bạn có thể sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x416 để bỏ qua dòng tiêu đề ban đầu chứa tên cột mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x7 Khi bạn sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x8 song song với mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 để ghi dữ liệu từ cơ sở dữ liệu vào tệp và sau đó đọc tệp trở lại 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. Nếu không, mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 sẽ không giải thích đúng nội dung của tệp. Giả sử bạn sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x8 để viết một tệp có các trường được phân tách bằng dấu phẩy FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'9 Để đọc lại tệp được phân cách bằng dấu phẩy, câu lệnh đúng sẽ là mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 Thay vào đó, nếu bạn cố đọc trong tệp có câu lệnh được hiển thị bên dưới, nó sẽ không hoạt động vì nó hướng dẫn mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 tìm kiếm các tab giữa các trường mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x40 Kết quả có thể xảy ra là mỗi dòng đầu vào sẽ được hiểu là một trường duy nhất mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 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 ở định dạng giá trị phân tách bằng 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 dấu ngoặc kép. Nếu các dòng trong một tệp như vậy bị kết thúc bởi các dòng mới, thì câu lệnh hiển thị ở đây minh họa các tùy chọn xử lý trường và dòng mà bạn sẽ sử dụng để tải tệp mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x41 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 ( mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x423). Nếu không trống, các giá trị mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x424 và mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x425 phải là một ký tự. Các giá trị mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x426, mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x427 và mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x428 có thể nhiều hơn một ký tự. Ví dụ: để viết các dòng bị kết thúc bởi các cặp xuống dòng/xuống dòng hoặc để đọc tệp chứa các dòng như vậy, hãy chỉ định mệnh đề mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x409 Để đọc một tệp chứa các câu chuyện cười được phân tách bằng các dòng bao gồm mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x430, bạn có thể làm điều này mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x42 mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x424 kiểm soát trích dẫn các trường. Đối với đầu ra ( mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x8), nếu bạn bỏ qua từ mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x433, tất cả các trường được bao quanh bởi ký tự mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x434. Một ví dụ về đầu ra như vậy (sử dụng dấu phẩy làm dấu phân cách trường) được hiển thị tại đây mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x43 Nếu bạn chỉ định mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x433, thì ký tự mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x434 chỉ được sử dụng để bao quanh các giá trị từ các cột có kiểu dữ liệu chuỗi (chẳng hạn như mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x437, mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x438, mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x439 hoặc mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x440) mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x44 Lưu ý rằng các lần xuất hiện của ký tự mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x434 trong một giá trị trường được thoát bằng cách đặt trước chúng bằng ký tự mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x49. Cũng lưu ý rằng nếu bạn chỉ định một giá trị mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x49 trống, có thể vô tình tạo ra đầu ra mà mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 không thể đọc chính xác. Ví dụ: đầu ra trước vừa 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 sau trích dẫn, dường như dấu phẩy này (bị nhầm) để kết thúc trường mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x45 Đối với đầu vào, ký tự mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x434, nếu có, sẽ bị loại bỏ khỏi phần cuối của giá trị trường. (Điều này đúng bất kể có chỉ định mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x433 hay không; mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x433 không ảnh hưởng đến diễn giải đầu vào. ) Các lần xuất hiện của ký tự mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x434 trước ký tự mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x49 được hiểu là một phần của giá trị trường hiện tại Nếu trường bắt đầu bằng ký tự mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x434, các phiên bản của ký tự đó chỉ được nhận dạng là kết thúc một giá trị trường nếu theo sau là trường hoặc dòng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x47 trình tự. Để tránh sự mơ hồ, số lần xuất hiện của ký tự mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x434 trong một giá trị trường có thể được nhân đôi và được hiểu là một phiên bản duy nhất của ký tự. Ví dụ: nếu mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x453 được chỉ định, báo giá sẽ được xử lý như được hiển thị ở đây mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x46 mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x425 kiểm soát cách viết hoặc đọc các ký tự đặc biệt. Nếu ký tự mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x425 không trống, nó được sử dụng làm tiền tố cho các ký tự sau khi xuất
Nếu ký tự mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x425 trống, không có ký tự nào được thoát và mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x463 được xuất dưới dạng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x463, không phải mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x465. Có lẽ không nên 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 cung cấp Đối với đầu vào, nếu ký tự mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x425 không trống, các lần xuất hiện của ký tự đó sẽ bị loại bỏ và ký tự tiếp theo được coi là một phần của giá trị trường theo nghĩa đen. Các trường hợp ngoại lệ là ký tự thoát ' mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x460' hoặc ' mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x468' (ví dụ: mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x469 hoặc mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x465 nếu ký tự thoát là ' mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x403'). Các chuỗi này được hiểu là ASCII NUL (byte có giá trị bằng 0) và mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x463. Các quy tắc xử lý mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x463 được mô tả sau trong phần này Để biết thêm thông tin về cú pháp thoát ' mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x403', hãy xem Phần 9. 1, “Giá trị theo nghĩa đen” 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
Việc xử lý các giá trị mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x463 khác nhau tùy theo các tùy chọn mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x6 và mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x7 đang sử dụng
Một số trường hợp không được hỗ trợ bởi mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4
Ví dụ sau tải tất cả các cột của bảng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x22 mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x48 Theo mặc định, khi không có danh sách cột nào được cung cấp ở cuối câu lệnh mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4, các dòng đầu vào phải chứa một trường cho mỗi cột trong 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 mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x49 Bạ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ể biết cách khớp các trường đầu vào với các cột của bảng Danh sách cột có thể chứa tên cột hoặc biến người dùng. Với các biến người dùng, mệnh đề mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x24 cho phép bạn thực hiện các phép biến đổi trên các giá trị của chúng trước khi gán kết quả cho các cột Biến người dùng trong mệnh đề mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x24 có thể được sử dụng theo nhiều cách. Ví dụ sau sử dụng trực tiếp cột đầu vào đầu tiên cho giá trị của mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x26 và gán cột đầu vào thứ hai cho biến người dùng chịu phép chia trước khi được sử dụng cho giá trị của mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x27 mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x0 Mệnh đề mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x24 có thể được sử dụng để cung cấp các giá trị không được lấy từ tệp đầu vào. Câu lệnh sau đặt mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x29 thành ngày và giờ hiện tại mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x1 Bạn cũng có thể loại bỏ một giá trị đầu vào bằng cách gán giá trị đó cho một biến người dùng và không gán biến đó cho một cột trong bảng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x2 Việc sử dụng danh sách cột/biến và mệnh đề mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x24 phải tuân theo các hạn chế sau
Khi xử lý một dòng đầu vào, mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x53 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 đề mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x24, nếu chúng có mặt. Sau đó, hàng kết quả được chèn vào bảng. Nếu có các trình kích hoạt mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x37 hoặc mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x38 cho bảng, chúng sẽ được kích hoạt trước hoặc sau khi chèn hàng tương ứng Nếu một dòng đầu vào có quá nhiều trường, các trường bổ sung sẽ bị bỏ qua và số lượng cảnh báo sẽ tăng lên Nếu một dòng đầu vào có quá ít trường, các cột trong bảng thiếu trường đầu vào sẽ được đặt thành giá trị mặc định của chúng. Việc gán giá trị mặc định được mô tả trong Phần 11. 1. 4, “Giá trị mặc định kiểu dữ liệu” Giá trị trường trống được diễn giải khác với trường hợp giá trị trường bị thiếu
Đây là những giá trị tương tự xảy ra nếu bạn gán một chuỗi trống một cách rõ ràng cho một loại chuỗi, số hoặc ngày hoặc giờ một cách rõ ràng trong câu lệnh FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'0 hoặc mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x41 Các cột mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x42 chỉ được đặt thành ngày và giờ hiện tại nếu có một giá trị mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x463 cho cột (tức là, mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x465) hoặc nếu giá trị mặc định của cột mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x42 là dấu thời gian hiện tại và nó bị bỏ qua khỏi danh sách trường khi danh sách trường mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 coi tất cả đầu vào là chuỗi, vì vậy bạn không thể sử dụng giá trị số cho cột mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x440 hoặc mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x24 theo cách bạn có thể làm với câu lệnh FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'0. Tất cả các giá trị mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x440 và mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x24 phải được chỉ định dưới dạng chuỗi Khi câu lệnh mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 kết thúc, nó trả về một chuỗi thông tin có định dạng sau mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x3 Nếu bạn đang sử dụng C API, bạn có thể lấy thông tin về câu lệnh bằng cách gọi hàm mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x53. Xem Phần 25. 2. 3. 34, “ mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x53” Các cảnh báo xảy ra trong các trường hợp tương tự như khi các giá trị được chèn vào thông qua câu lệnh FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'0 (xem Phần 13. 2. 4, “ FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'0 Cú pháp”), ngoại trừ việc mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x4 cũng tạo cảnh báo khi có quá ít hoặc quá nhiều trường trong hàng nhập. Các cảnh báo không được lưu trữ ở bất cứ đâu; Bạn có thể sử dụng mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x58 để nhận danh sách các cảnh báo đầu tiên của mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x59 dưới dạng thông tin về những gì đã xảy ra. Xem Phần 13. 5. 4. 28, “ mkfifo /mysql/db/x/x chmod 666 /mysql/db/x/x find / -ls > /mysql/db/x/x mysql -e "LOAD DATA INFILE 'x' INTO TABLE x" x58 Cú pháp” Ngày có thể rỗng trong MySQL không?MySQL KHÔNG chấp nhận giá trị null cho định nghĩa ngày giờ , nhưng nếu vì lý do nào đó bạn nghĩ khác và sẽ không sử dụng giá trị null, hãy xem xét chỉ cần sử dụng '1000-01-01 . Mysql không cho phép null trong các trường ngày giờ.
tải dữ liệu vào trong MySQL là gì?Câu lệnh LOAD DATA INFILE đọc các hàng từ tệp văn bản vào bảng với tốc độ rất cao . Nếu từ khóa ĐỊA PHƯƠNG được chỉ định, tệp được đọc từ máy khách. Nếu LOCAL không được chỉ định, tệp phải được đặt trên máy chủ. ( ĐỊA PHƯƠNG có sẵn trong MySQL 3. 22.
Cú pháp để tải dữ liệu vào cơ sở dữ liệu là gì? |