May 2018
Intermediate to advanced
576 pages
30h 25m
English
Indexes that depend on a dropped column are automatically dropped as well. All other objects that depend on the column(s), such as foreign keys from other tables, will cause the ALTER TABLE statement to be rejected. You can override this and drop everything in sight using the CASCADE option, as follows:
ALTER TABLE x DROP COLUMN last_update_timestampCASCADE;
Adding a column with a non-null default value can be done with ALTER TABLE … ADD COLUMN … DEFAULT …, as shown above, which however holds an AccessExclusive lock for the whole duration of the command, which is not short as 100% of the rows must be rewritten.
The script introduced in the recipe "Using psql variables" in this chapter is an example of how to do the same without ...