标签: create-table

在SELECT语句中创建临时表,而不使用单独的CREATE TABLE

是否可以在不使用create table语句并指定每个列类型的情况下从select语句创建临时(仅会话)表?我知道派生表能够做到这一点,但那些是超临时的(仅限语句),我想重用.

如果我不必编写create table命令并保持列列表和类型列表匹配,那么可以节省时间.

mysql select temp-tables derived-table create-table

479
推荐指数
5
解决办法
65万
查看次数

仅在SQLite中不存在时才在SQLite中创建表

我想在SQLite数据库中创建一个表,如果它还不存在的话.有没有办法做到这一点?如果表存在,我不想删除它,只有在没有的情况下才创建它.

sqlite create-table database-table

247
推荐指数
1
解决办法
18万
查看次数

如果不存在,PostgreSQL创建表

在MySQL脚本中,您可以编写:

CREATE TABLE IF NOT EXISTS foo ...;
Run Code Online (Sandbox Code Playgroud)

... 其他的东西 ...

然后您可以多次运行该脚本而无需重新创建表.

你如何在PostgreSQL中做到这一点?

sql postgresql ddl create-table database-table

148
推荐指数
4
解决办法
17万
查看次数

是否可以在主要SQL数据库中回滚CREATE TABLE和ALTER TABLE语句?

我正在研究一个发布DDL的程序.我想知道是否CREATE TABLE可以回滚和类似的DDL

  • Postgres的
  • MySQL的
  • SQLite的

描述每个数据库如何使用DDL处理事务.

sql ddl transactions create-table

103
推荐指数
4
解决办法
7万
查看次数

在postgreSQL中创建表

我不明白这个查询有什么问题?查询工具不希望在PostgreSQL中创建表.

CREATE TABLE article (
article_id bigint(20) NOT NULL auto_increment,
article_name varchar(20) NOT NULL,
article_desc text NOT NULL,
date_added datetime default NULL,
PRIMARY KEY (article_id)
);
Run Code Online (Sandbox Code Playgroud)

postgresql create-table

66
推荐指数
2
解决办法
14万
查看次数

复制包含索引的MySQL表

我可以复制一个MySQL表来创建一个新表:

CREATE TABLE newtable SELECT * FROM oldtable
Run Code Online (Sandbox Code Playgroud)

这可以,但索引不会复制到新表.如何复制包含索引的表?

mysql indexing create-table

55
推荐指数
1
解决办法
2万
查看次数

MySQL:错误代码:1118行大小太大(> 8126).将某些列更改为TEXT或BLOB

我想创建一个325列的表:

CREATE TABLE NAMESCHEMA.NAMETABLE 
(   
      ROW_ID TEXT NOT NULL ,        //this is the primary key

324 column of these types:
      CHAR(1), 
      DATE, 
      DECIMAL(10,0), 
      DECIMAL(10,7), 
      TEXT, 
      LONG,

) ROW_FORMAT=COMPRESSED;
Run Code Online (Sandbox Code Playgroud)

我用TEXT替换了所有VARCHAR,我在MySQL的my.ini文件中添加了Barracuda,这是添加的属性:

innodb_file_per_table=1
innodb_file_format=Barracuda
innodb_file_format_check = ON
Run Code Online (Sandbox Code Playgroud)

但我仍然有这个错误:

Error Code: 1118
 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
Run Code Online (Sandbox Code Playgroud)

编辑:我无法更改数据库的结构,因为它是遗留的应用程序/系统/数据库.创建一个新表,它是遗留数据库的导出.

编辑2:我写的这个问题与其他人类似,但内部有一些我在互联网上找到的解决方案,如VARCHAR和Barracuda,但我仍然有这个问题所以我决定打开一个新的问题已经内部的经典答案,看看是否有人有其他答案

mysql sql create-table

50
推荐指数
14
解决办法
12万
查看次数

在SQL Create语句中添加命名外键约束

我目前有:

CREATE TABLE  galleries_gallery (
    id              INT NOT NULL PRIMARY KEY IDENTITY,
    title           NVARCHAR(50) UNIQUE NOT NULL,
    description     VARCHAR(256),
    templateID      INT NOT NULL REFERENCES galleries_templates(id),
    jsAltImgID      INT NOT NULL REFERENCES libraryImage(id)
    jsAltText       NVARCHAR(500),
    dateCreated     SMALLDATETIME NOT NULL,
    dateUpdated     SMALLDATETIME NOT NULL,
    lastUpdatedBy   INT,
    deleted         BIT NOT NULL DEFAULT 0
);
Run Code Online (Sandbox Code Playgroud)

但是这会增加自动生成名称的约束,这使得以后很难删除约束.为了命名约束,我需要添加什么?

上面的例子是mssql我也需要它在postgresql中

sql sql-server postgresql constraints create-table

44
推荐指数
2
解决办法
3万
查看次数

字段'id'没有默认值?

我是这个SQL的新手; 我已经看到类似的问题与更大的程序,我目前无法理解.我正在为我的主页上使用的卡片游戏创建一个数据库.

我在Windows上使用MySQL Workbench.我得到的错误是:

错误代码:1364.字段'id'没有默认值

CREATE TABLE card_games
(
nafnleiks varchar(50), 
leiklysing varchar(3000), 
prentadi varchar(1500), 
notkunarheimildir varchar(1000), 
upplysingar varchar(1000), 
ymislegt varchar(500), 
id int(11) PK
);

insert into card_games (nafnleiks, leiklysing, prentadi, notkunarheimildir, upplysingar, ymislegt)

values('Svartipétur',
'Leiklýsingu vantar',
'Er prentað í: Þórarinn Guðmundsson (2010). Spilabókin - Allir helstu spilaleikir og spil.',
'Heimildir um notkun: Árni Sigurðsson (1951). Hátíðir og skemmtanir fyrir hundrað árum',
'Aðrar upplýsingar',
'ekkert hér sem stendur'
);

values('Handkurra',
'Leiklýsingu vantar',
'Er prentað í: Þórarinn Guðmundsson (2010). Spilabókin - …
Run Code Online (Sandbox Code Playgroud)

mysql insert create-table

43
推荐指数
6
解决办法
17万
查看次数

PostgreSQL错误:关系已经存在

我正在尝试创建一个之前删除的表.

但是当我这样做的时候CREATE TABLE A ...我收到以下错误:

关系'A'已经存在.

我验证了SELECT * FROM A,但后来又出现了另一个错误:

关系'A'不存在.

我已经试图在\dS+列出所有关系时找到它,但它并不存在.
为了使这一点复杂化,我通过在另一个数据库中创建此表来测试这个,我得到了同样的错误.我认为这个表被删除时可能会出错.有任何想法吗?

这是代码:我正在使用Power SQL生成的代码.我没有使用序列有相同的错误.它只是在我更改名称时起作用,在这种情况下我不能这样做.

CREATE SEQUENCE csd_relationship_csd_relationship_id_seq;
CREATE TABLE csd_relationship (
    csd_relationship_id INTEGER NOT NULL DEFAULT nextval('csd_relationship_csd_relationship_id_seq'::regclass),  
    type_id INTEGER NOT NULL,
    object_id INTEGER NOT NULL,
    CONSTRAINT csd_relationship PRIMARY KEY (csd_relationship_id)
);
Run Code Online (Sandbox Code Playgroud)

postgresql identifier create-table

42
推荐指数
4
解决办法
9万
查看次数