CREATE TABLE "SAC_DISPATCH"."xxl_job_group" ( "id" INT DEFAULT xxl_job_group_id_seq.nextval NOT NULL, "app_name" VARCHAR(64) NOT NULL, "title" VARCHAR(24) NOT NULL, "address_type" INT DEFAULT 0 NOT NULL, "address_list" VARCHAR(512) DEFAULT NULL NULL, "update_time" TIMESTAMP(6) NULL )这个SQL语句在DM数据库中执行有问题吗
时间: 2023-07-19 08:17:29 浏览: 56
这个 SQL 语句在 DM 数据库中执行会有问题,因为 DM 数据库中的语法与 Oracle 数据库有些许不同。
具体来说,这个 SQL 语句在 DM 数据库中会出现两个问题:
1. DM 数据库中没有类似于 Oracle 的 `INT` 类型,可以使用 `NUMBER` 类型来代替。
2. DM 数据库中的序列名需要使用 `"` 双引号括起来,否则会被解析成普通的字符串。
因此,可以将这个 SQL 语句修改为以下形式,以在 DM 数据库中执行:
```sql
CREATE TABLE "SAC_DISPATCH"."xxl_job_group" (
"id" NUMBER DEFAULT "xxl_job_group_id_seq".nextval NOT NULL,
"app_name" VARCHAR2(64) NOT NULL,
"title" NVARCHAR2(24) NOT NULL,
"address_type" NUMBER(1) DEFAULT 0 NOT NULL,
"address_list" NVARCHAR2(512),
"update_time" TIMESTAMP(6)
);
```
在这个修改后的 SQL 语句中,我使用了 `NUMBER` 类型代替了 `INT` 类型,使用了 `NVARCHAR2` 类型代替了 `VARCHAR` 类型,并使用了双引号括起来的序列名 `"xxl_job_group_id_seq"`。同时也去掉了 `NULL` 和 `DEFAULT NULL` 中的 `NULL` 关键字,因为在 DM 数据库中这是默认行为。