Skip to content

Latest commit

 

History

History
35 lines (24 loc) · 1.25 KB

File metadata and controls

35 lines (24 loc) · 1.25 KB

== problem

Using character is likely a mistake and should almost always be replaced by text or varchar.

From the postgres docs:

There is no performance difference among these three types, apart from increased storage space when using the blank-padded type, and a few extra CPU cycles to check the length when storing into a length-constrained column. While character(n) has performance advantages in some other database systems, there is no such advantage in PostgreSQL; in fact character(n) is usually the slowest of the three because of its additional storage costs. In most situations text or character varying should be used instead.

See the rule prefer-text-field rule for info on the advantages of text over varchar.

Don't Do This - Don't use char(n)

== solution

Use text or varchar instad of character.

Instead of:

sql CREATE TABLE "app_user" ( "id" serial NOT NULL PRIMARY KEY, "name" char(100) NOT NULL, "email" character NOT NULL, );

Use:

sql CREATE TABLE "app_user" ( "id" serial NOT NULL PRIMARY KEY, "name" varchar(100) NOT NULL, "email" TEXT NOT NULL, );