PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

dấu ngoặc kép xuất hiện giá trị arround sau khi chạy bản sao trong postgres 9.2

Những gì bạn mô tả trong câu hỏi của mình rõ ràng không phải là những gì đang thực sự xảy ra. COPY sẽ không thành công khi cố gắng nhập các ký tự chuỗi với các dấu ngoặc kép thừa vào một date cột.

Để loại bỏ các dấu ngoặc kép thừa, hãy nhập vào bảng tạm thời với text rồi đến cột INSERT INTO bảng mục tiêu cắt bớt các dấu ngoặc kép:

CREATE TEMP TABLE wtmp (
   city text
 , temp_lo int
 , temp_hi int
 , prcp real
 , date text  -- note how I use text here.
);

COPY wtmp FROM '~aviad/postsgres/playground/weather.txt';

INSERT INTO weather (city, temp_lo, temp_hi, prcp, date)
SELECT city, temp_lo, temp_hi, prcp, trim(date, '''')::date
FROM   wtmp
-- ORDER BY ?
;

Bảng tạm thời sẽ tự động bị xóa vào cuối phiên của bạn.

Các từ dành riêng làm mã định danh

Tôi thấy bạn đã sao chép ví dụ từ sách hướng dẫn. Đây là liên kết sâu tới sách hướng dẫn hiện tại .

Mặc dù là chính xác, nhưng ví dụ đó trong sách hướng dẫn là không may. Tôi khuyên bạn không nên sử dụng các từ dành riêng như date dưới dạng tên cột. Như bạn có thể thấy tại đây date là một từ dành riêng trong mọi tiêu chuẩn SQL. Nó được phép sử dụng trong Postgres và tôi có thể thấy nó hấp dẫn như thế nào bằng một ví dụ đơn giản. Nhưng đó không phải là một ý tưởng hay. Nói chung, bạn nên có thói quen tránh từ dành riêng làm định danh. Nó dẫn đến các thông báo lỗi khó hiểu và mã SQL không tương thích không cần thiết.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đặt chuỗi trống ('') thành NULL trong toàn bộ cơ sở dữ liệu

  2. SQL trả về hàng nếu không tìm thấy kết quả

  3. Plpgsql:Làm cách nào để gán giá trị cho biến tại phần khai báo?

  4. Viết tắt tìm kiếm toàn văn bản PostgreSQL

  5. Truy vấn ĐẶT HÀNG THEO số hàng được trả về từ một LỰA CHỌN khác