Sự khác biệt giữa CHARACTER VARYING và VARCHAR trong PostgreSQL là gì?


114

John sử dụng CHARACTER VARYINGở những nơi mà tôi sử dụng VARCHAR. Tôi là người mới bắt đầu, trong khi anh ấy là một chuyên gia. Điều này gợi ý cho tôi rằng có điều gì đó mà tôi không biết.

Sự khác biệt giữa CHARACTER VARYING và VARCHAR trong PostgreSQL là gì?

Câu trả lời:


128

Varying là một bí danh cho varchar, vì vậy không có sự khác biệt, hãy xem tài liệu :)

Các ký hiệu varchar (n) và char (n) là các bí danh cho ký tự thay đổi (n) và ký tự (n) tương ứng. ký tự không có chỉ định độ dài tương đương với ký tự (1). Nếu thay đổi ký tự được sử dụng mà không có chỉ định độ dài, kiểu này chấp nhận các chuỗi có kích thước bất kỳ. Sau đó là một phần mở rộng PostgreSQL.


9
Đó là một cách khác: varchar là một bí danh để thay đổi. Không phải là quá lớn, nhưng nó nằm ngay trong trích dẫn của bạn.
zerzevul

2
@zerzevul Một người có thể không đồng ý với tài liệu và đồng ý với Charles ở đây, cho rằng varchar(n), v.v. là các tiêu chuẩn ANSI và cú pháp này là đặc biệt đối với PostgreSQL.
BobRodes


4

Sự khác biệt duy nhất là CHARACTER VARYING thân thiện với con người hơn VARCHAR


1
@joop Tôi chưa có đặc ân được tiếp xúc với COBOL nhưng tôi đã được tiếp xúc với tiếng Anh và tôi nghĩ "VARCH ARe what?" :-)
inor

8
Bên cạnh tôi nghĩ rằng nó là khó hiểu lập trình viên hàng đầu;) Chúng được sử dụng để varchar
manocha_ak

3

Cả hai đều giống nhau nhưng nhiều cơ sở dữ liệu không cung cấp các char khác nhau mà chủ yếu postgreSQL đang cung cấp. Vì vậy, đối với đa cơ sở dữ liệu như Oracle Postgre và DB2, tốt hơn là sử dụng Varchar


2

Câu trả lời ngắn gọn: không có sự khác biệt.

Câu trả lời dài: CHARACTER VARYINGlà tên kiểu chính thức từ tiêu chuẩn ANSI SQL, mà tất cả các cơ sở dữ liệu tuân thủ bắt buộc phải hỗ trợ. VARCHARlà một bí danh ngắn hơn mà tất cả các cơ sở dữ liệu hiện đại cũng hỗ trợ. Tôi thích VARCHARvì nó ngắn hơn và bởi vì cái tên dài hơn có cảm giác khổng lồ. Tuy nhiên, các công cụ postgres thích pg_dump\dsẽ xuất ra character varying.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.