จอห์นใช้ในสถานที่ที่ผมใช้CHARACTER VARYING
VARCHAR
ฉันเป็นมือใหม่ในขณะที่เขาเป็นผู้เชี่ยวชาญ สิ่งนี้ชี้ให้ฉันเห็นว่ามีบางอย่างที่ฉันไม่รู้
อะไรคือความแตกต่างระหว่าง CHARACTER VARYING และ VARCHAR ใน PostgreSQL?
จอห์นใช้ในสถานที่ที่ผมใช้CHARACTER VARYING
VARCHAR
ฉันเป็นมือใหม่ในขณะที่เขาเป็นผู้เชี่ยวชาญ สิ่งนี้ชี้ให้ฉันเห็นว่ามีบางอย่างที่ฉันไม่รู้
อะไรคือความแตกต่างระหว่าง CHARACTER VARYING และ VARCHAR ใน PostgreSQL?
คำตอบ:
Varying เป็นนามแฝงสำหรับ varchar ดังนั้นไม่แตกต่างโปรดดูเอกสารประกอบ :)
สัญกรณ์ varchar (n) และ char (n) เป็นนามแฝงสำหรับอักขระที่แตกต่างกัน (n) และอักขระ (n) ตามลำดับ อักขระที่ไม่มีตัวระบุความยาวจะเทียบเท่ากับอักขระ (1) หากใช้อักขระที่แตกต่างกันโดยไม่มีตัวระบุความยาวประเภทจะยอมรับสตริงที่มีขนาดใดก็ได้ ส่วนหลังเป็นส่วนขยาย PostgreSQL
varchar(n)
เป็นมาตรฐาน ANSI และไวยากรณ์นี้เป็นเรื่องแปลกสำหรับ PostgreSQL
เอกสาร PostgreSQL บนรูปแบบตัวอักษรคือการอ้างอิงที่ดีนี้ เป็นชื่อสองชื่อที่แตกต่างกันสำหรับประเภทเดียวกัน
ข้อแตกต่างเพียงอย่างเดียวคือตัวละคร VARYING เป็นมิตรกับมนุษย์มากกว่า VARCHAR
ทั้งสองเป็นสิ่งเดียวกัน แต่หลายฐานข้อมูลไม่ได้ให้ถ่านที่แตกต่างกันส่วนใหญ่ postgreSQL ให้ ดังนั้นสำหรับฐานข้อมูลหลายอย่างเช่น Oracle Postgre และ DB2 จึงเป็นการดีที่จะใช้ Varchar
คำตอบสั้น ๆ : ไม่มีความแตกต่าง
คำตอบแบบยาว: CHARACTER VARYING
เป็นชื่อประเภทอย่างเป็นทางการจากมาตรฐาน ANSI SQL ซึ่งฐานข้อมูลที่สอดคล้องทั้งหมดจะต้องรองรับ VARCHAR
เป็นนามแฝงที่สั้นกว่าซึ่งฐานข้อมูลสมัยใหม่ทั้งหมดรองรับเช่นกัน ฉันชอบVARCHAR
เพราะมันสั้นกว่าและเพราะชื่อที่ยาวขึ้นทำให้รู้สึกอวดดี อย่างไรก็ตามเครื่องมือ postgres ชอบpg_dump
และส่งออกจะ\d
character varying