2012-03-15 56 views

Trả lời

1

Nó không thể làm điều đó trực tiếp trong MySQL. Nhưng bạn có thể thử thêm một phần ngày giờ vào tên tệp, sau đó kết hợp một số tệp với một tệp mới với 'con mèo' (lệnh UNIX) hoặc 'loại' (lệnh DOS).

Trợ giúp: cat (Unix)

+0

Liên kết không tốt, có thể muốn xóa hoặc cập nhật. –

+0

Cảm ơn. Liên kết được thay đổi. – Devart

5

Bạn không thể làm điều đó với SELECT INTO OUTFILE. Lệnh đó chỉ tạo các tệp mới và sẽ thất bại nếu tệp đã tồn tại.

Bạn có thể nối đầu ra truy vấn vào một tệp hiện có bằng cách sử dụng lệnh TEE trong ứng dụng khách MySQL.

Dưới đây là ví dụ của bạn phụ thêm hai kết quả truy vấn đến cùng một tập tin sử dụng TEE:

TEE ~/TestInput/Results.csv 

SELECT * 
FROM Results; 

SELECT * 
FROM Results; 

NOTEE 
+0

Làm thế nào tôi sẽ bọc nó trong một thủ tục lưu sẵn và kiểm tra xem tệp có tồn tại trước (trước khi sử dụng TEE) không? – stackoverflow

+1

Nếu bạn muốn kiểm tra xem tệp có tồn tại trước không, bạn nên làm điều đó bằng ngôn ngữ kịch bản (python, bash, perl, v.v.), không phải trong một thủ tục được lưu trữ. –

4

Bạn có thể kết hợp kết quả và viết cùng một lúc. TEE sẽ ghi lại tất cả mọi thứ mà có thể không được mong muốn. Trong trường hợp của bạn:

SELECT * FROM Results UNION 
SELECT * FROM Results INTO OUTFILE '~/TestInput/Results.csv'; 
Các vấn đề liên quan