标签: create-table

DB2 - 创建表抛出语法错误“(”意外

当我尝试在 db2 中创建表时,它抛出以下错误

$ db2 CREATE TABLE employee(emp_id INT NOT NULL, emp_name VARCHAR(100))
sh: Syntax error: "(" unexpected
Run Code Online (Sandbox Code Playgroud)

请帮忙。提前致谢

db2 create-table

4
推荐指数
1
解决办法
4196
查看次数

MySql - DROP表'无论'是否存在'如果存在ELSE创建表'什么'?

我只是想删除表'what'如果它存在,然后在可能的情况下在单个查询中重新创建表'what'.

DROP TABLE IF EXISTS `whatever` ELSE
    CREATE TABLE `whatever`
Run Code Online (Sandbox Code Playgroud)

任何的想法 ?

mysql create-table sql-drop

4
推荐指数
1
解决办法
4679
查看次数

在create table上创建索引

我可以在CREATE TABLE声明中创建索引吗?
即我可以在创建表时为表定义索引吗?我的意思是在create stamement sql命令上创建索引

mysql sql indexing create-table

4
推荐指数
1
解决办法
4042
查看次数

如果不存在则创建表,如果缺少则插入列,最好的方法

如果表不存在,我需要创建一个表;如果表已经存在,我需要按正确的顺序添加缺失的列。

我知道如何使用大量查询和 if 语句等来做到这一点,但我在这里问的是最好的解决方案是什么..也许有一个特殊的查询可以做到这一点,或者有一个聪明的方法。

我会这样做:

  • 如果不存在则创建表(所有列应如此)

  • 比较所有列(如果缺少某些列,则会添加它们,否则不会添加)

这是最好的方法还是有更好的方法?


附加信息

需要将列添加到正确的位置。我有一个以正确顺序表示所有列的字符串列表。使用 vb.net 我正在迭代这些字符串。

mysql create-table multiple-columns

4
推荐指数
1
解决办法
6433
查看次数

Postgresql没有截断超长字符串

根据文档,字符串变量或VARCHAR指定的字符串应该被截断:

如果显式地将值转换为字符变量(n)或字符(n),则超长值将被截断为n个字符而不会引发错误.(这也是SQL标准所要求的.)

但我无法让它发挥作用.现在文档确实说必须"明确地"将值赋予字符变化,所以也许我错过了.下面是一个简单的测试表:

create table test1(
tval character varying(20));
Run Code Online (Sandbox Code Playgroud)

其中以下内容因ERROR而失败:类型字符变化的值太长(20)

insert into test1 values 
('this is a super long string that we want to see if it is really truncated');
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它发挥作用?

postgresql create-table sql-insert postgresql-9.3

4
推荐指数
1
解决办法
2454
查看次数

在PostgreSQL中创建空表

我想在PostgreSQL中的数据库内创建一个简单的表。从我有的文档中CREATE TABLE will create a new, initially empty table in the current database. The table will be owned by the user issuing the command. 使用此命令

CREATE TABLE *table_name*;
Run Code Online (Sandbox Code Playgroud)

我以为我得到了一个新的空表ERROR: syntax error at or near ";"。但是psql抛出了。当我使用一个空的参数列表时,例如:

CREATE TABLE *table_name*();
Run Code Online (Sandbox Code Playgroud)

psql告诉我该表是通过以下方式创建的

postgres=# create table *table_name*();
CREATE TABLE
Run Code Online (Sandbox Code Playgroud)

但是\ l显示未显示新创建的表。而且也无法使用psql -d table_name -U user_name登录。有人可以帮忙吗?

postgresql create-table

4
推荐指数
2
解决办法
6088
查看次数

在 postgres 中使用 Union 联合两个表创建一个新表

我想创建一个新表作为两个没有重复表的并集的结果。我在 stackoverflow 中搜索,发现了一个问题,正是我想要的,但使用 mysql Create a new table from merging两个表与联合

mysql中的解决方案

CREATE TABLE new_table
  SELECT * FROM table1
    UNION
  SELECT * FROM table2;
Run Code Online (Sandbox Code Playgroud)

我尝试做类似的事情,但我得到了:

SQL 错误。

如果可以使用类似于 mysql 的语句来实现这一点,我想实现这一点。

我知道,如果您首先使用我想要的字段创建一个新表。我可以通过该表的并集对该表进行选择。如果没有其他选择,我必须做这样的事情。

但总而言之,如果可能的话,可以在 postgres 中使用 mysql 做类似的事情。我想使用语法糖来做到这一点

提前致谢

更新

为了澄清我有两个具有相同结构的表

TABLE1(id,field1,field2,field3)
TABLE2(id,field1,field2,field3)
Run Code Online (Sandbox Code Playgroud)

和我想要的桌子

TABLE3(id,field1,field2,field3)
Run Code Online (Sandbox Code Playgroud)

请注意,我尝试过

CREATE TABLE new_table as
  SELECT * FROM table1
    UNION
  SELECT * FROM table2;
Run Code Online (Sandbox Code Playgroud)

它可以工作,但没有将字段放在正确的位置,例如将表 1 的 field3 放在 table_result 的字段 1 中

postgresql union create-table

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

使用一个文件在 Hive 中创建表

我正在使用以下命令在 Hive 中创建一个新表:

CREATE TABLE new_table AS select * from old_table;
Run Code Online (Sandbox Code Playgroud)

我的问题是在创建表后,它为每个分区生成多个文件 - 而我只需要每个分区一个文件。

我如何在表中定义它?谢谢!

hive create-table hive-partitions hiveddl

4
推荐指数
1
解决办法
3443
查看次数

为什么不能创建分区表

我正在尝试创建带有分区的简单表。

这是我的命令:

CREATE TABLE measurement (
    city_id         int not null,
    logdate         date not null,
    peaktemp        int,
    unitsales       int
) PARTITION BY RANGE (logdate);
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

SQL 错误 [42601]:错误:“PARTITION”处或附近的语法错误

无法理解是问题..

我正在使用 PostgreSQL 9.6.3

postgresql create-table database-partitioning postgresql-9.6

4
推荐指数
1
解决办法
5630
查看次数

为什么 CREATE TABLE AS SELECT 比 INSERT with SELECT 更快

我使用 INNER JOIN 进行查询,结果是 1200 万行。我喜欢把它放在桌子上。我做了一些测试,当我使用子句 AS SELECT 创建表时,比先创建表并在之后运行带有 SELECT 的 INSERT 更快。我不明白为什么。有人可以为我解释一下吗?塔克斯

sql create-table oracle11g sql-insert

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