可用版本: Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

ALTER TABLE .. ALTER COLUMN .. SET TYPE

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

可以使用 ALTER TABLESET TYPE 子句更改列的类型

// Set a new data type on the column
create.alterTable("table").alter("column").set(VARCHAR(50)).execute();

对于任何给定的现有类型/新类型组合,是否支持此操作取决于供应商。如果现有数据不符合新类型,数据库会引发错误。

方言支持

此示例使用 jOOQ

alterTable("t").alter("c").set(VARCHAR(50))

翻译成以下特定方言的表达式

访问

ALTER TABLE t ALTER c text(50)

ASE, Exasol, MemSQL

ALTER TABLE t MODIFY c varchar(50)

Aurora MySQL, MariaDB, MySQL

ALTER TABLE t CHANGE COLUMN c c varchar(50)

Aurora Postgres, Firebird, Postgres, YugabyteDB

ALTER TABLE t ALTER c TYPE varchar(50)

ClickHouse

ALTER TABLE t MODIFY COLUMN c Nullable(String(50))

CockroachDB

ALTER TABLE t ALTER c TYPE string(50)

Databricks

ALTER TABLE t ALTER COLUMN c TYPE varchar(50)

DB2, Derby, DuckDB

ALTER TABLE t ALTER c SET DATA TYPE varchar(50)

H2, HSQLDB, Snowflake, Sybase

ALTER TABLE t ALTER c varchar(50)

Hana

ALTER TABLE t ALTER(c varchar(50))

Informix

ALTER TABLE t MODIFY c lvarchar(50)

Oracle

ALTER TABLE t MODIFY c varchar2(50)

SQLDataWarehouse, SQLServer

ALTER TABLE t ALTER COLUMN c varchar(50)

Trino

ALTER TABLE t ALTER COLUMN c SET DATA TYPE varchar(50)

BigQuery, Redshift, SQLite, Teradata, Vertica

/* UNSUPPORTED */
使用 jOOQ 3.21 生成。早期 jOOQ 版本的支持可能有所不同。 在我们的网站上翻译您自己的 SQL

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo