Я пытаюсь создать новую таблицу и продолжать получать syntax error at or near "CONSTRAINT"
в приведенной ниже инструкции. Я уже убедился, что у меня есть ,
после последнего объявляемого столбца, который равен Tags
прямо над линией CONSTRAINT. Кто-нибудь знает, почему это происходит? Все онлайн-примеры объявления ограничений, по-видимому, включают в себя инструкции CREATE TABLE, а не инструкции CREATE TABLE AS. Это имеет значение? Спасибо за вашу помощь!Синтаксис Ошибка в или рядом с «CONSTRAINT» PostgreSQL
Кстати, строка ограничения ниже была скопирована/вставлена из уже созданной таблицы, в которой использовался оператор CREATE TABLE, а не оператор CREATE TABLE AS, поэтому я спрашиваю, не связаны ли ограничения с CREATE TABLE AS.
CREATE TABLE "2017Projects" AS
SELECT
"STAGING_PROJECTS"."_PROJECT_NUMBER",
"STAGING_PROJECTS"."_PROJECT_DESCRIPTION",
"STAGING_PROJECTS"."_PROJECT_STATUS",
"STAGING_PROJECTS"."_TEMPLATE_FLAG",
"STAGING_PROJECTS"."_PROJECT_START_DATE",
"STAGING_PROJECTS"."_PROJECT_COMPLETION_DATE",
"STAGING_PROJECTS"."_COMPANY",
"STAGING_PROJECTS"."_LOCATION_NUMBER",
"STAGING_TASKS"."_PARENT_TASK_NUMBER",
"STAGING_TASKS"."_PARENT_TASK_DESCRIPTION",
"STAGING_TASKS"."_TASK_NUMBER",
"STAGING_TASKS"."_TASK_DESCRIPTION",
"STAGING_TASKS"."_TASK_START_DATE",
"STAGING_TASKS"."_TASK_COMPLETION_DATE",
"STAGING_TASKS"."_EBS_ACCOUNT",
"STAGING_TASKS"."_FUSION_ACCOUNT",
CASE
WHEN left("STAGING_PROJECTS"."_PROJECT_NUMBER",2) = 'C0' THEN
'('||"STAGING_PROJECTS"."_PROJECT_NUMBER"||') '||"STAGING_PROJECTS"."_PROJECT_DESCRIPTION"
ELSE
"STAGING_PROJECTS"."_PROJECT_DESCRIPTION"
END AS "Project",
'('||"STAGING_TASKS"."_TASK_NUMBER"||') '||"STAGING_TASKS"."_TASK_DESCRIPTION" AS "Task",
NULL AS "Investment_Priority",
NULL AS "Class",
NULL AS "Tags",
--ERROR ON NEXT LINE HERE!!!
CONSTRAINT "2017Projects_pk" PRIMARY KEY ("_PROJECT_NUMBER", "_TASK_NUMBER")
FROM
"STAGING_PROJECTS";
Для справки: https://www.postgresql.org/docs/9.5/static/sql-createtableas.html. В разделе 'create table as select' нет' 'ограничения' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '. –
@ RadekPostołowicz Простите, пропустил это по какой-то причине. Я искал 'CREATE TABLE AS' и по какой-то причине видел только документацию' CREATE TABLE', которая показывает раздел 'constraint'. – christopheralan88
@TimBiegeleisen Спасибо, я думал, что могу это сделать, но надеялся, что есть способ сделать это в инструкции 'CREATE TABLE AS'. Спасибо за вашу помощь! – christopheralan88