Re: Null option and Default value Lost when use CREATE TABLE AS to backup a table.
От | Francisco Olarte |
---|---|
Тема | Re: Null option and Default value Lost when use CREATE TABLE AS to backup a table. |
Дата | |
Msg-id | CA+bJJbyYHqpDY+LXtxpQcz=ZHD7+-BhvtkRk-ppUs8wZ-n28vQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Null option and Default value Lost when use CREATE TABLE AS to backup a table. ("Xiao, Bing (Benny)" <bing.xiao@dxc.com>) |
Список | pgsql-bugs |
Seems like wrong command used. On Thu, 21 Oct 2021 at 12:18, Xiao, Bing (Benny) <bing.xiao@dxc.com> wrote: > Create back up table. > create table contact_bckp as table contacts with data; "Create table as" needs a select query. "table contacts" is just a fancy way of saying "select * from contacts". Create table as uses a query result to create, query results do not have constraints. It is easier to see why if you replace "table contacts" with its "expansion". From the two different commands ( quoting the manual ). CREATE TABLE — define a new table CREATE TABLE AS — define a new table from the results of a query You are using the second, you need the first, look specifically at the LIKE options: LIKE source_table [ like_option ... ] The LIKE clause specifies a table from which the new table automatically copies all column names, their data types, and their not-null constraints. And then copy the data with an insert/select ( I do not remember now if you can do it in one step, I always do it in two ). So, IMHO, not a bug, working as it should. Francisco Olarte.
В списке pgsql-bugs по дате отправления: