如何在 SQL CREATE TABLE 中使用常量?

发布于 2024-10-09 18:10:08 字数 571 浏览 2 评论 0原文

我有 3 个 SQL 表,定义如下:

 CREATE TABLE organs(
    abbreviation   VARCHAR(16),
    -- ... other stuff
 );
 CREATE TABLE blocks(
    abbreviation   VARCHAR(16),
    -- ... other stuff
 );
 CREATE TABLE slides(
    title          VARCHAR(16),
    -- ... other stuff
 );

上面的 3 个字段都使用 VARCHAR(16),因为它们是相关的并且具有相同的长度限制。

是否有一种(最好是可移植的)方法将“16”放入常量/变量中并在 CREATE TABLE 中引用它?例如。像这样的东西会很好:

 CREATE TABLE slides(
    title          VARCHAR(MAX_TITLE_LENGTH),
    -- ... other stuff
 );

我正在使用 PostgreSQL 8.4。

I have 3 SQL tables, defined as follows:

 CREATE TABLE organs(
    abbreviation   VARCHAR(16),
    -- ... other stuff
 );
 CREATE TABLE blocks(
    abbreviation   VARCHAR(16),
    -- ... other stuff
 );
 CREATE TABLE slides(
    title          VARCHAR(16),
    -- ... other stuff
 );

The 3 fields above all use VARCHAR(16) because they're related and have the same length restriction.

Is there a (preferably portable) way to put '16' into a constant / variable and reference that instead in CREATE TABLE? eg. something like this would be nice:

 CREATE TABLE slides(
    title          VARCHAR(MAX_TITLE_LENGTH),
    -- ... other stuff
 );

I'm using PostgreSQL 8.4.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤独患者 2024-10-16 18:10:08

这就是域的用途:

CREATE DOMAIN title_data AS varchar(16);
CREATE TABLE slides(
    title          title_data,
    -- ... other stuff
 );

That's what domains are for:

CREATE DOMAIN title_data AS varchar(16);
CREATE TABLE slides(
    title          title_data,
    -- ... other stuff
 );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文