В чем разница между CREATE TEMP TABLE myTempTable
и CREATE GLOBAL TEMPORARY TABLE myTempTable
?
Разницы в постгресе нет. Как объясняется в документации :
Стандарт SQL также различает глобальные и локальные временные таблицы, где локальная временная таблица имеет отдельный набор содержимого для каждого модуля SQL в каждом сеансе, хотя ее определение по-прежнему используется в сеансах. Поскольку PostgreSQL не поддерживает модули SQL, это различие не имеет значения в PostgreSQL.
Ради совместимости PostgreSQL будет принимать ключевые слова GLOBAL и LOCAL в объявлении временной таблицы, но в настоящее время они не действуют. Использование этих ключевых слов не рекомендуется, поскольку в будущих версиях PostgreSQL может быть принята интерпретация их значения, более совместимая со стандартами.
Я добавил выделение.
... i guest TEMPORARY и TEMP взаимозаменяемы. Если ГЛОБАЛЬНОЕ не описано, это означает, что оно ЛОКАЛЬНОЕ («создать локальную [временную/временную] таблицу» равно «создать [временную/временную] таблицу»)
@ФЗС. . . Временные таблицы отличаются от других таблиц (они автоматически удаляются). Однако различий между глобальными и локальными временными таблицами нет.
GLOBAL
и LOCAL
существуют, потому что стандарт SQL
требует их. Также, чтобы люди могли переносить скрипты из других SQL
баз данных, не вызывая синтаксической ошибки. В любом случае Postgres игнорирует их, поэтому они не имеют практического значения. Вы можете поместить их, если считаете, что ваш код будет выполняться в другой базе данных, которая их использует. Просто знайте, что их присутствие не влияет на Postgres.
@GordonLinoff об автоматическом удалении ... если я создал временную таблицу, кто-нибудь может использовать или увидеть мою временную таблицу, которую я создал?
@ФЗС. . . Временные таблицы известны только создавшему их сеансу. Так что нет, они не видны другим пользователям.
Означает ли это, что «создать таблицу TEMP» так же, как написать «создать таблицу LOCAL TEMPORARY»? Поскольку из приведенной выше документации сравнивается временная таблица GLOBAL и временная таблица LOCAL, а не таблица TEMP и временная таблица GLOBAL.