В чем разница между пунктами «временная таблица» и «глобальная временная таблица» в postgresql?

В чем разница между CREATE TEMP TABLE myTempTable и CREATE GLOBAL TEMPORARY TABLE myTempTable ?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
1 335
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Разницы в постгресе нет. Как объясняется в документации :

Стандарт SQL также различает глобальные и локальные временные таблицы, где локальная временная таблица имеет отдельный набор содержимого для каждого модуля SQL в каждом сеансе, хотя ее определение по-прежнему используется в сеансах. Поскольку PostgreSQL не поддерживает модули SQL, это различие не имеет значения в PostgreSQL.

Ради совместимости PostgreSQL будет принимать ключевые слова GLOBAL и LOCAL в объявлении временной таблицы, но в настоящее время они не действуют. Использование этих ключевых слов не рекомендуется, поскольку в будущих версиях PostgreSQL может быть принята интерпретация их значения, более совместимая со стандартами.

Я добавил выделение.

Означает ли это, что «создать таблицу TEMP» так же, как написать «создать таблицу LOCAL TEMPORARY»? Поскольку из приведенной выше документации сравнивается временная таблица GLOBAL и временная таблица LOCAL, а не таблица TEMP и временная таблица GLOBAL.

FZS 18.12.2020 12:46

... i guest TEMPORARY и TEMP взаимозаменяемы. Если ГЛОБАЛЬНОЕ не описано, это означает, что оно ЛОКАЛЬНОЕ («создать локальную [временную/временную] таблицу» равно «создать [временную/временную] таблицу»)

FZS 18.12.2020 12:59

@ФЗС. . . Временные таблицы отличаются от других таблиц (они автоматически удаляются). Однако различий между глобальными и локальными временными таблицами нет.

Gordon Linoff 18.12.2020 14:57
GLOBAL и LOCAL существуют, потому что стандарт SQL требует их. Также, чтобы люди могли переносить скрипты из других SQL баз данных, не вызывая синтаксической ошибки. В любом случае Postgres игнорирует их, поэтому они не имеют практического значения. Вы можете поместить их, если считаете, что ваш код будет выполняться в другой базе данных, которая их использует. Просто знайте, что их присутствие не влияет на Postgres.
Adrian Klaver 18.12.2020 17:22

@GordonLinoff об автоматическом удалении ... если я создал временную таблицу, кто-нибудь может использовать или увидеть мою временную таблицу, которую я создал?

FZS 19.12.2020 12:44

@ФЗС. . . Временные таблицы известны только создавшему их сеансу. Так что нет, они не видны другим пользователям.

Gordon Linoff 19.12.2020 19:04

Другие вопросы по теме