ALTER TABLE
Команда ALTER TABLE меняет определение существующей таблицы. Полный список команд вы можете найти на странице описания команды документации PostgreSQL.
Описание
ALTER TABLE изменяет определение существующей таблицы. Для разных разновидностей могут требоваться разные уровни блокировок. Если явно не отмечено другое, запрашивается блокировка ACCESS EXCLUSIVE . При указании нескольких подкоманд будет запрашиваться самая сильная блокировка из требуемых ими.
Использование
Общий вид команды приведён ниже:
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] action [, . ] ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] RENAME [ COLUMN ] column_name TO new_column_name ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] RENAME CONSTRAINT constraint_name TO new_constraint_name ALTER TABLE [ IF EXISTS ] name RENAME TO new_name ALTER TABLE [ IF EXISTS ] name SET SCHEMA new_schema ALTER TABLE ALL IN TABLESPACE name [ OWNED BY role_name [, . ] ] SET TABLESPACE new_tablespace [ NOWAIT ] ALTER TABLE [ IF EXISTS ] name ATTACH PARTITION partition_name < FOR VALUES partition_bound_spec | DEFAULT > ALTER TABLE [ IF EXISTS ] name DETACH PARTITION partition_name [ CONCURRENTLY | FINALIZE ]
- action может принимать одно из следующих значений:
ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type [ COLLATE collation ] [ column_constraint [ . ] ] DROP [ COLUMN ] [ IF EXISTS ] column_name [ RESTRICT | CASCADE ] ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ] ALTER [ COLUMN ] column_name SET DEFAULT expression ALTER [ COLUMN ] column_name DROP DEFAULT ALTER [ COLUMN ] column_name < SET | DROP > NOT NULL ALTER [ COLUMN ] column_name DROP EXPRESSION [ IF EXISTS ] ALTER [ COLUMN ] column_name ADD GENERATED < ALWAYS | BY DEFAULT > AS IDENTITY [ ( sequence_options ) ] ALTER [ COLUMN ] column_name < SET GENERATED < ALWAYS | BY DEFAULT > | SET sequence_option | RESTART [ [ WITH ] restart ] > [. ] ALTER [ COLUMN ] column_name DROP IDENTITY [ IF EXISTS ] ALTER [ COLUMN ] column_name SET STATISTICS integer ALTER [ COLUMN ] column_name SET ( attribute_option = value [, . ] ) ALTER [ COLUMN ] column_name RESET ( attribute_option [, . ] ) ALTER [ COLUMN ] column_name SET STORAGE < PLAIN | EXTERNAL | EXTENDED | MAIN > ALTER [ COLUMN ] column_name SET COMPRESSION compression_method ADD table_constraint [ NOT VALID ] ADD table_constraint_using_index ALTER CONSTRAINT constraint_name [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] VALIDATE CONSTRAINT constraint_name DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ] DISABLE TRIGGER [ trigger_name | ALL | USER ] ENABLE TRIGGER [ trigger_name | ALL | USER ] ENABLE REPLICA TRIGGER trigger_name ENABLE ALWAYS TRIGGER trigger_name DISABLE RULE rewrite_rule_name ENABLE RULE rewrite_rule_name ENABLE REPLICA RULE rewrite_rule_name ENABLE ALWAYS RULE rewrite_rule_name DISABLE ROW LEVEL SECURITY ENABLE ROW LEVEL SECURITY FORCE ROW LEVEL SECURITY NO FORCE ROW LEVEL SECURITY CLUSTER ON index_name SET WITHOUT CLUSTER SET WITHOUT OIDS SET TABLESPACE new_tablespace SET < LOGGED | UNLOGGED > SET ( storage_parameter [= value] [, . ] ) RESET ( storage_parameter [, . ] ) INHERIT parent_table NO INHERIT parent_table OF type_name NOT OF OWNER TO < new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER > REPLICA IDENTITY < DEFAULT | USING INDEX index_name | FULL | NOTHING >
IN ( partition_bound_expr [, . ] ) | FROM ( < partition_bound_expr | MINVALUE | MAXVALUE > [, . ] ) TO ( < partition_bound_expr | MINVALUE | MAXVALUE > [, . ] ) | WITH ( MODULUS numeric_literal, REMAINDER numeric_literal )
[ CONSTRAINT constraint_name ] < NOT NULL | NULL | CHECK ( expression ) [ NO INHERIT ] | DEFAULT default_expr | GENERATED ALWAYS AS ( generation_expr ) STORED | GENERATED < ALWAYS | BY DEFAULT > AS IDENTITY [ ( sequence_options ) ] | UNIQUE index_parameters | PRIMARY KEY index_parameters | REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE referential_action ] [ ON UPDATE referential_action ] > [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
[ CONSTRAINT constraint_name ] < CHECK ( expression ) [ NO INHERIT ] | UNIQUE ( column_name [, . ] ) index_parameters | PRIMARY KEY ( column_name [, . ] ) index_parameters | EXCLUDE [ USING index_method ] ( exclude_element WITH operator [, . ] ) index_parameters [ WHERE ( predicate ) ] | FOREIGN KEY ( column_name [, . ] ) REFERENCES reftable [ ( refcolumn [, . ] ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE referential_action ] [ ON UPDATE referential_action ] > [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
[ CONSTRAINT constraint_name ] < UNIQUE | PRIMARY KEY > USING INDEX index_name [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
[ INCLUDE ( column_name [, . ] ) ] [ WITH ( storage_parameter [= value] [, . ] ) ] [ USING INDEX TABLESPACE tablespace_name ]
< column_name | ( expression ) > [ opclass ] [ ASC | DESC ] [ NULLS < FIRST | LAST >]
Не считается ошибкой, если таблица не существует. В данном случае будет выведено уведомление
Имя существующей таблицы (опционально подготовленное схемой) для изменения. Если перед именем таблицы указано ONLY , изменяется только эта таблица. Если не указано значение ONLY , таблица и все ее дочерние таблицы (если таковые имеются) будут изменены. Опционально может быть указан символ * после имени таблицы, чтобы явно указать, что включены таблицы-потомки
Имя нового или существующего столбца
Новое имя существующего столбца
Новое имя таблицы
Тип данных нового столбца или новый тип данных существующего столбца
Новое ограничение таблицы
Имя нового или существующего ограничения
Автоматическое удаление объектов, зависящих от удаляемого столбца или ограничения (например, представления, содержащие этот столбец), и, в свою очередь, все зависящие от них объекты
Отказ в удалении столбца или ограничения, если существуют зависящие от них объекты. Значение по умолчанию
Имя включаемого или отключаемого триггера
Отключение или включение всех триггеров, принадлежащих таблице. Для выполнения этого действия требуются права суперпользователя, если в числе этих триггеров оказываются сгенерированные внутрисистемные триггеры исключений, например, те, что реализуют ограничения внешнего ключа или отложенные ограничения уникальности и исключений
Отключение или включение всех триггеров, принадлежащих таблице, за исключением сгенерированных внутрисистемных триггеров исключений, например, тех, которые реализуют ограничения внешнего ключа или отложенные ограничения уникальности и исключений
Имя существующего индекса
Имя параметра хранения таблицы
Новое значение параметра хранения таблицы. Это может быть число или строка, в зависимости от параметра
Родительская таблица, с которой будет установлена или разорвана связь данной таблицы
Имя пользователя, назначаемого новым владельцем таблицы
Имя табличного пространства, в которое будет перемещена таблица
Имя схемы, в которую будет перемещена таблица
Имя таблицы, присоединяемой в качестве новой партиции, или наоборот, отсоединяемой от данной таблицы
Указание границ для новой партиции
Примеры
Добавление в таблицу столбца типа varchar :
ALTER TABLE distributors ADD COLUMN address varchar(30);
Добавление столбца со значением по умолчанию (отличным от NULL ):
ALTER TABLE measurements ADD COLUMN mtime timestamp with time zone DEFAULT now();
Добавление столбца и его заполнение отличным от значения по умолчанию, которое будет использоваться в будущем:
ALTER TABLE transactions ADD COLUMN status varchar(30) DEFAULT 'old', ALTER COLUMN status SET default 'current';
Удаление столбца из таблицы:
ALTER TABLE distributors DROP COLUMN address RESTRICT;
Изменение типов двух существующих столбцов в одной операции:
ALTER TABLE distributors ALTER COLUMN address TYPE varchar(80), ALTER COLUMN name TYPE varchar(100);
Смена типа целочисленного столбца, содержащего время в стиле Unix, на тип «timestamp with time zone» с применением предложения USING :
ALTER TABLE foo ALTER COLUMN foo_timestamp SET DATA TYPE timestamp with time zone USING timestamp with time zone 'epoch' + foo_timestamp * interval '1 second';
Совместимость
Формы ADD (без USING INDEX ), DROP [COLUMN] , DROP IDENTITY , RESTART , SET DEFAULT , SET DATA TYPE (без USING ), SET GENERATED и SET соответствуют стандарту SQL. Другие формы являются расширениями стандарта SQL, реализованными в PostgreSQL. Кроме того, расширением является возможность указать в одной команде ALTER TABLE несколько операций изменения.
ALTER TABLE DROP COLUMN позволяет удалить единственный столбец таблицы и оставить таблицу без столбцов. Это является расширением стандарта SQL, который не допускает существование таблиц без столбцов.
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней
Документация
Arenadata DB Arenadata Hadoop Arenadata QuickMarts Arenadata Streaming Arenadata Postgres Arenadata Cluster Manager ADQM Spark Connector Arenadata Platform Security
Удаление столбца с ограничением
Помогите написать запрос на удаление ограничения, ну или на удаление столбца с ограничением.
Заранее спасибо за ответ.
Извините за беспокойство примитивными вопросами
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как узнать тип столбца с ограничением
Помогите пожалуйста узнать тип столбца с ограничением. Есть запрос который выдаем тип, но нет.
Ошибка при удаление столбца
Всем доброго дня.Нужна помощь знающих людей.При попытке удалить столбец из базы данных, происходит.
Удаление столбца из таблицы. MS SQL 2000
Здравствуйте, помогите, пожалуйста, не могу разобраться в ситуации. Есть таблица, которая.
Триггер с ограничением на значение
Доброго времени суток, суть задачи такова: Разработать триггер для добавления записей в таблицу.
Как удалить столбец в таблице sql
Вы можете использовать предложение add в операторе alter table для добавления нового столбца в существующую таблицу. В каждом операторе alter table может быть добавлен только один столбец. В примере 5.18 показано использование предложения add.

Оператор alter table в примере 5.18 добавляет столбец teiePhone_no к таблице employee. Database Engine заполняет новый столбец значениями null, identity или значением, которое было задано в качестве значения по умолчанию. По этой причине новый столбец или должен допускать пустые значения, или должен иметь ограничение значения по умолчанию.
Предложение drop column предоставляет возможность удалить существующий столбец в таблице, как показано в примере 5.19.

Оператор alter table в примере 5.19 удаляет столбец telephone по, который был добавлен к таблице employee оператором alter table в примере 5.18.
Удаление полей из таблиц базы данных с помощью phpMyAdmin.

Запустить
Удаление полей из таблиц базы данных с помощью phpMyAdmin.
Это видео предполагает, что вы уже вошли в phpMyAdmin. Теперь давайте узнаем, как удалять поля из таблицы базы данных. Сначала выберите базу данных, где имеется таблица, затем кликните на таблицу, из которой вы хотите удалить поле. Перейдите на вкладку «Структура». Выберите поле, которое вы хотите удалить, затем нажмите «Сбросить». Нажмите «ОК» для подтверждения.
Готово! Поле удалено из нашей таблицы.
Это конец учебного видео. Теперь вы знаете, как удалить поля из таблиц базы данных с помощью phpMyAdmin.
Полезные ссылки
Домен | Com домены на сайте Hostimul.com
Домен — означает имя веб-сайта, которое позволяет пользователям Интернета получать доступ к своему веб-сайту. Доступ к веб-сайту, не имеющему этого им.. узнать больше
Купить домен | Дешевые цены на домены в Hostimul.com
Купить домен — Нет необходимости тратить время на поиск надежной и прибыльной компании для покупки домена. Как команда Hostimul.com, мы предлагаем вам.. узнать больше
Дешевый Vps в Европе
Дешевый Vps в Европе в Hostimul.com — это виртуальный частный сервер. Вы можете купить это на Hostimul.com, где мы предоставляем виртуальные серве.. узнать больше
Vps в Европе
Наш Vps в Европе будет для вас отличным решением, если вы переросли среду общего хостинга и задаетесь вопросом, что делать дальше. Наши специалист.. узнать больше
Недорогой выделенный сервер
Недорогой выделенный сервер – это выделенный виртуальный сервер, услуга хостинга, при которой клиент полностью получает в личное пользование вирту.. узнать больше
Хостинг с большим дисковым пространством ✅
Хостинг с большим дисковым пространством предоставляет пользователям все преимущества безлимитной услуги. Хостинги предлагают клиентам разные усл.. узнать больше
Быстрый виртуальный хостинг✅
Ищете быстрый виртуальный хостинг ? В Hostimul вы найдете все, что вам нужно. Давайте уточним что такое виртуальный хостинг? Когда придет время вы.. узнать больше
Выделенный Сервер в Европе ✔️
Выделенный сервер в Европе, предлагаемый Hostimul.com станет для вас уникальной возможностью получить доступный и надежный сервер для вашего прое.. узнать больше
Купить Хостинг Дешево
Хотите купить хостинг дешево для вашего сайта ? Добро пожаловать в Hostimul.com, где найдете только выгодные тарифы. На рынке доступно несколько .. узнать больше
Облачный хостинг
Решение выбрать облачный хостинг может быть продиктовано желанием иметь собственный сервер, и не платить за избыточную емкость жесткого диска, кот.. узнать больше
Хостинг недорогой
Ищете хостинг недорогой ? Hostimul.com будет для вас лучшим спутником по обеспечению вашего проекта наилучшей хостинговой услугой. В поисках самог.. узнать больше
Сервер для сайта
Надежный сервер для сайта необходим каждому, кто желает безопасный “ Дом ” для своего проекта-сайта. Крупному сайту, который интенсивно наполняет.. узнать больше
Сервер Аренда
Сервер аренда — это услуга, которая нужна особенно тем, кто имеет большой проект или сайт для безопасной и безотказной работы. Основные причины, .. узнать больше
Виртуальный хостинг сайтов ✔️
Ищете виртуальный хостинг сайтов ? Hostimul будет для вас верным спутником по организации вашего проекта онлайн. Увеличьте скорость с помощью веб-.. узнать больше
Хостинг для wordpress Украина✔️
Услуга » Хостинг для wordpress Украина » в Hostimul является наиболее востребованной в силу своей надежности и качества обслуживания. Управляемые .. узнать больше
Надежный Хостинг ✔️
Надежный хостинг доступен по адресу Hostimul.com по самым выгодным тарифам ! Владывая значительные средства в создание актуального и интересного с.. узнать больше
Хостинг выделенный сервер
Выбрать хостинг выделенный сервер для бизнеса не так просто, как кажется на первый взгляд. Одним из актуальных вариантов является выделенный серве.. узнать больше
Хостинг пробный период✅
Хостинг пробный период доступен в Hostimul.com на целый месяц с бесплатным доменом. Получите удобные услуги управления доменом вместе с учетной з.. узнать больше
Купить Хостинг Для Сайта ✅
Решили купить хостинг для сайта ? Вы пришли определенно по верному адресу ! Скорость сайта может сильно повлиять как на видимость вашей поисковой .. узнать больше
Хостинг для интернет магазина
Ищете хостинг для интернет магазина ? Hostimul будет для вас наиболее лучшим вариантом для безопасной и отказоустойчивой деятельности вашего проек.. узнать больше
Хостинг бесплатный ✔️
Выберите хостинг бесплатный для оптимизации вашего бизнеса. Наши хостинговые услуги также распространяют свои услуги на таких администраторов веб-.. узнать больше
Vps в Сша ☑️
Хотитн продвижения бизнеса онлайн ? Будем рады предложить вам лучшие серверные опции, которые выведут возможности бизнеса на новый уровень. Vps .. узнать больше
Vps в Украине ☑️
Vps в Украине стал самым популярным среди всех. Технология виртуализации используется службой хостинга, которая предоставляет частные вы.. узнать больше
Vps в Германи ✅
Vps Германи с использованием Hostimul.com означает, что вы можете быть уверены, что сможете использовать дополн.. узнать больше
Лучший хостинг ☑️
Хотите продвижение вашего проекта онлайн ? Для этого необходим лучший хостинг, которого вы найдете на Hostimul.com, являющийся лидером по хостинго.. узнать больше
Аренда виртуального сервера ☑️
Перед тем, как решитесь аренда виртуального сервера вам необходимо решить какой трафик ваш нужен. Виртуальный сервер это — хостинг-услуга сервер, .. узнать больше
Выделенный сервер ☑️
Выделенный сервер идеально подходит для высоконагруженных сайтов, в особенности для игровых порталов, для больших интернет магазинов с высокой пос.. узнать больше
Купить хостинг ☑️
Купить хостинг — это процесс не самый легкий и требует учет определенных аспектов. Очевидно, чтобы ваш сайт был скоростным и .. узнать больше
Виртуальный Сервер ☑️
Виртуальный сервер — это сервер, который совместно использует аппаратные и программные ресурсы с другими операционными систем.. узнать больше
Vps в Москве ✅
Заказать Vps в Москве через hostimul.com будет для вас очень выгодно и доступно. Независимо от того, устанавливается ли пользовательское приложен.. узнать больше
Baranova 2869/35, Žižkov,
130 00 Prague 3, Czechia
© 2023 HOSTIMUL S.R.O. ВСЕ ПРАВА ЗАЩИЩЕНЫ
