我有这两个CREATE TABLE陈述:
CREATE TABLE GUEST (
id int(15) not null auto_increment PRIMARY KEY,
GuestName char(25) not null
);
CREATE TABLE PAYMENT (
id int(15) not null auto_increment
Foreign Key(id) references GUEST(id),
BillNr int(15) not null
);
Run Code Online (Sandbox Code Playgroud)
第二个陈述中的问题是什么?它没有创建一个新表.
我正在尝试设置临时表以进行单元测试.到目前为止,我设法创建一个复制现有表结构的临时表:
CREATE TEMP TABLE t_mytable (LIKE mytable INCLUDING DEFAULTS);
Run Code Online (Sandbox Code Playgroud)
但这缺乏原始表中的数据.我可以使用CREATE TABLE AS语句将数据复制到临时表中:
CREATE TEMP TABLE t_mytable AS SELECT * FROM mytable;
Run Code Online (Sandbox Code Playgroud)
但是结构t_mytable将不相同,例如列大小和默认值不同.是否有一个复制一切的声明?
我在使用第一个查询时遇到的另一个问题LIKE是,关键字段引用原始表的ID序列,因此在插入时递增它.有没有简单的方法来复制单元测试表的序列,还是我必须手动设置新的序列?
使用时不会复制外键约束
create table table_name ( like source_table INCLUDING ALL)'
Run Code Online (Sandbox Code Playgroud)
在Postgres.如何创建包含所有外键的现有表的副本.
嘿大家我需要帮助创建表格.我有下面的脚本,它创建了几个表.当我尝试运行脚本时,它给我这个错误:
psql:script.sql:10: ERROR: syntax error at or near "Group"
LINE 6: CREATE TABLE Group(
Run Code Online (Sandbox Code Playgroud)
谁能告诉我发生了什么事?
CREATE TABLE Group(
name varchar(40) PRIMARY KEY NOT NULL
);
CREATE TABLE Artist(
name varchar(30) PRIMARY KEY NOT NULL,
birthplace varchar(20) NOT NULL,
age int NOT NULL CHECK (age > 0),
style varchar(20) NOT NULL
);
CREATE TABLE Artwork(
title varchar(40) PRIMARY KEY NOT NULL,
artist varchar(30) NOT NULL references Artist(name),
group_name varchar(40) NOT NULL references Group(name),
year int NOT NULL CHECK (year > 0), …Run Code Online (Sandbox Code Playgroud) 我是新手PHP,MySQL并且在我正在研究的学习项目上遇到了一些麻烦.
每当我尝试创建一个表
CREATE TABLE transactions(
id int NOT NULL AUTO_INCREMENT,
location varchar(50) NOT NULL,
description varchar(50) NOT NULL,
category varchar(50) NOT NULL,
amount double(10) NOT NULL,
type varchar(6) NOT NULL,
notes varchar(512),
receipt int(10),
)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
#1064 - 您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在')NOT NULL附近使用正确的语法,输入varchar(6)NOT NULL,注释varchar(512),收据int(10),'在第6行**
以下是我正在使用的一些信息
我已经花了一天时间把头靠在墙上,现在我觉得是时候寻求帮助了.我想知道是否有人能告诉我我做错了什么?
我需要在列CURRENT_DATE()上创建具有默认值的mysql表
我试试
DROP TABLE IF EXISTS `visitors`;
CREATE TABLE `visitors` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`ip` VARCHAR(32) NOT NULL,
`browser` VARCHAR(500) NOT NULL,
`version` VARCHAR(500) NOT NULL,
`platform` ENUM('w','l','m') NOT NULL,
`date` TIMESTAMP NOT NULL DEFAULT CURRENT_DATE(),
PRIMARY KEY (`id`),
UNIQUE KEY `person` (`ip`,`date`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
但它正在写一个错误
Query: CREATE TABLE `visitors` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `ip` VARCHAR(32) NOT NULL, `browser` VARCHAR(500) NO...
Error Code: 1064
You have an error in your SQL …Run Code Online (Sandbox Code Playgroud) 有没有相当于蜂巢:show create table <tablename>;在hbase?
我有几个表定义了表分割.使用Describe <tablename>不会显示此详细信息.
例如,如果我创建表TEST1,如:
hbase(main):001:0> create 'TEST1', {NAME =>'D',COMPRESSION=>'SNAPPY'} , {SPLITS => ['1','2','3','4','5','6','7','8','9','0']}
hbase(main):001:0> describe 'TEST1'
DESCRIPTION ENABLED
'TEST1', {NAME => 'D', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPR true
ESSION => 'SNAPPY', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY =>
'false', BLOCKCACHE => 'true'}
1 row(s) in 6.5080 seconds
Run Code Online (Sandbox Code Playgroud)
请注意,describe不显示拆分.我怎么能以显示分裂的方式做到这一点?
我知道我可以使用HBase主表详细信息网页查看此信息; 但我需要在shell中看到这个.这样我可以为几个表运行这个shell并查看拆分.
我有从 JSON 文件创建的 Hive 表。
CREATE external TABLE logan_test.t1 (
name string,
start_time timestamp
)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
WITH SERDEPROPERTIES (
"timestamp.formats" = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
)
LOCATION 's3://t1/';
Run Code Online (Sandbox Code Playgroud)
我的时间戳数据的格式为yyyy-MM-dd'T'HH:mm:ss.SSSSSS.
我为页面中给出的时间戳格式指定了 SERDEPROPERTIES。 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-TimestampstimestampTimestamps
创建语句成功执行但select *失败并出现以下错误。
HIVE_BAD_DATA:解析字段 1 的字段值 '2017-06-01T17:51:15.180400' 时出错:时间戳格式必须为 yyyy-mm-dd hh:mm:ss[.ffffffffff]
我有一个我每周"发布"的数据库,这意味着我发布了一个人们可以开始的备份,并且我发布了一个他们可以用来从上周升级的更新脚本(这样他们就可以尽可能地保留他们当前的数据).当然,此脚本包含大量的DDL的- CREATE TABLE,ALTER TABLE等等.它的基本结构是这样的:
/*
HOW TO USE THIS SCRIPT
1. Run it against your existing DB
2. Check whether there were any errors
3. If there were, issue a rollback by highlighting this:
ROLLBACK
and executing it
4. If there weren't, issue a commit by highlighting this:
COMMIT
and executing it
5. !!! Not doing either of these will leave a transaction open, which will
probably cause all further queries to time out till you do …Run Code Online (Sandbox Code Playgroud) 使用带有UTC时区的字段创建表的语法是什么?
我有这些领域:
(id INT PRIMARY KEY NOT NULL,
bravo timestamp without time zone DEFAULT now(),
charlie timestamp with time zone UTC DEFAULT now()
)
Run Code Online (Sandbox Code Playgroud)
这个名字的最后一个字段charlie不是出于某种原因.我希望它很简单,因为它只是告诉它有一个时区,然后在那里推动UTC,并now()在输入过程中弄清楚db .
create-table ×10
postgresql ×4
mysql ×3
sql ×3
timestamp ×2
cloudera ×1
datetime ×1
foreign-keys ×1
hadoop ×1
hbase ×1
hive ×1
hiveql ×1
plpgsql ×1
rollback ×1
sql-server ×1
temp-tables ×1
transactions ×1