当我尝试在 db2 中创建表时,它抛出以下错误
$ db2 CREATE TABLE employee(emp_id INT NOT NULL, emp_name VARCHAR(100))
sh: Syntax error: "(" unexpected
Run Code Online (Sandbox Code Playgroud)
请帮忙。提前致谢
我只是想删除表'what'如果它存在,然后在可能的情况下在单个查询中重新创建表'what'.
DROP TABLE IF EXISTS `whatever` ELSE
CREATE TABLE `whatever`
Run Code Online (Sandbox Code Playgroud)
任何的想法 ?
我可以在CREATE TABLE声明中创建索引吗?
即我可以在创建表时为表定义索引吗?我的意思是在create stamement sql命令上创建索引
如果表不存在,我需要创建一个表;如果表已经存在,我需要按正确的顺序添加缺失的列。
我知道如何使用大量查询和 if 语句等来做到这一点,但我在这里问的是最好的解决方案是什么..也许有一个特殊的查询可以做到这一点,或者有一个聪明的方法。
我会这样做:
如果不存在则创建表(所有列应如此)
比较所有列(如果缺少某些列,则会添加它们,否则不会添加)
这是最好的方法还是有更好的方法?
附加信息
需要将列添加到正确的位置。我有一个以正确顺序表示所有列的字符串列表。使用 vb.net 我正在迭代这些字符串。
根据文档,字符串变量或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 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登录。有人可以帮忙吗?
我想创建一个新表作为两个没有重复表的并集的结果。我在 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 中
我正在使用以下命令在 Hive 中创建一个新表:
CREATE TABLE new_table AS select * from old_table;
Run Code Online (Sandbox Code Playgroud)
我的问题是在创建表后,它为每个分区生成多个文件 - 而我只需要每个分区一个文件。
我如何在表中定义它?谢谢!
我正在尝试创建带有分区的简单表。
这是我的命令:
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
我使用 INNER JOIN 进行查询,结果是 1200 万行。我喜欢把它放在桌子上。我做了一些测试,当我使用子句 AS SELECT 创建表时,比先创建表并在之后运行带有 SELECT 的 INSERT 更快。我不明白为什么。有人可以为我解释一下吗?塔克斯
create-table ×10
postgresql ×4
mysql ×3
sql ×2
sql-insert ×2
db2 ×1
hive ×1
hiveddl ×1
indexing ×1
oracle11g ×1
sql-drop ×1
union ×1