sql server中的一段sql
CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
Run Code Online (Sandbox Code Playgroud)
主键本质上不为空,为什么我们这里仍然指定不为空?我错过了什么吗?
drop table member cascade constraints;
create table member (
mid varchar2(10) not null,
email varchar2(40) not null,
fname varchar2(20) not null,
lname varchar2(20) not null,
street varchar2(50) not null,
city varchar2(30) not null,
state varchar2(20) not null,
zip number(5) not null,
phone varchar2(12),
password varchar2(20),
primary key (mid)
);
Run Code Online (Sandbox Code Playgroud) CREATE TABLE Existing_medical_condition (
condition VARCHAR(50) NOT NULL,
date_of_diagnosis DATE, treatment TEXT,
pssn INT NOT NULL,
CONSTRAINT emc_key PRIMARY KEY(condition, pssn),
FOREIGN KEY(pssn) REFERENCES Patient(ssn)
);
Run Code Online (Sandbox Code Playgroud)
给出错误:
错误1064(42000):您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在第1行的'condition VARCHAR(50)NOT NULL,date_of_diagnosis DATE,treatment TEXT,pssn INT'附近使用正确的语法
我是SQL的新手,在创建表结构时遇到问题.
我想创建一个表,四列- ,,id 和.问题是,这是给我在MySQL的错误,我想是因为词和也是数据类型的名称,并在SQL中使用因此MySQL越来越困惑什么我的列名应为或不认识的名字,我的另一个术语给出的是实名.有没有什么方法可以解决这个问题,以获得我想要的列名称,而不必将列调用其他内容,然后在创建后手动更改它们?textdatereplaceTEXTDATEREPLACE
这是我的SQL:
CREATE TABLE message (
id INT UNIQUE AUTO_INCREMENT NOT NULL,
text TEXT,
date INT,
replace INT DEFAULT 0
);
Run Code Online (Sandbox Code Playgroud)
而我得到的错误:
#1064 - 您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第5行的'replace INT DEFAULT 0''附近使用正确的语法
CREATE TABLE message(
id INT UNIQUE AUTO_INCREMENT NOT NULL ,
TEXT TEXT,
DATE INT,
REPLACE INT DEFAULT 0
);
Run Code Online (Sandbox Code Playgroud) 你知道为什么下面的代码在ms sql server上是错误的吗?
DROP TABLE [IF EXISTS] database.table1,
create table table1 (...)
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个包含两个表的数据库:客户和交易(一个客户可以做很多交易,一个交易只能由一个客户完成)。我正在使用以下 Perl 代码:
my $dbh = DBI->connect("dbi:SQLite:dbname=$RealBin/active.db","","")
or die $DBI::errstr;
my @ddl = (
"CREATE TABLE IF NOT EXISTS customer (
id INTEGER PRIMARY KEY UNIQUE,
id_1 INTEGER,
id_2 INTEGER,
name TEXT
)",
"CREATE TABLE IF NOT EXISTS transaction (
id INTEGER PRIMARY KEY AUTOINCREMENT,
customer_id INTEGER REFERENCES customer(id),
)"
);
for my $sql (@ddl){
$dbh->do($sql);
}
Run Code Online (Sandbox Code Playgroud)
当我运行我的脚本时,我收到以下错误:
DBD::SQLite::db do failed: near "transaction": syntax error at
t/oneToMany.t line 28 (#1)
DBD::SQLite::db do failed: near "transaction": syntax error at t/oneToMany.t line …Run Code Online (Sandbox Code Playgroud) drwxr-xr-x - mgupta supergroup 0 2018-03-26 22:16 /kylin/retailer/qi_basket_brand_bucket_fact/_impala_insert_staging
drwxr-xr-x - mgupta supergroup 0 2018-03-26 22:18 /kylin/retailer/qi_basket_brand_bucket_fact/product_hierarchy_type=CI
[mgupta@sjc-dev-binn01 ~]$ hadoop fs -ls /kylin/retailer/qi_basket_brand_bucket_fact/product_hierarchy_type=CI
Found 27 items
drwxr-xr-x - mgupta supergroup 0 2018-03-26 22:16 /kylin/retailer/qi_basket_brand_bucket_fact/product_hierarchy_type=CI/month_id=201601
drwxr-xr-x - mgupta supergroup 0 2018-03-26 22:16 /kylin/retailer/qi_basket_brand_bucket_fact/product_hierarchy_type=CI/month_id=201602
drwxr-xr-x - mgupta supergroup 0 2018-03-26 22:16 /kylin/retailer/qi_basket_brand_bucket_fact/product_hierarchy_type=CI/month_id=201603
drwxr-xr-x - mgupta supergroup 0 2018-03-26 22:16 /kylin/retailer/qi_basket_brand_bucket_fact/product_hierarchy_type=CI/month_id=201604
drwxr-xr-x - mgupta supergroup 0 2018-03-26 22:16 /kylin/retailer/qi_basket_brand_bucket_fact/product_hierarchy_type=CI/month_id=201605
drwxr-xr-x - mgupta supergroup 0 2018-03-26 22:16 /kylin/retailer/qi_basket_brand_bucket_fact/product_hierarchy_type=CI/month_id=201606
drwxr-xr-x - mgupta supergroup 0 2018-03-26 22:16 …Run Code Online (Sandbox Code Playgroud) 我已经给出了一些来自 PHP 的例子,只是为了指出我的开发环境。问题不是关于 PHP,而是纯粹关于 PostgreSQL。
生成的列有两种:存储的和虚拟的。存储的生成列在写入(插入或更新)时进行计算,并像普通列一样占用存储空间。虚拟生成列不占用存储空间,读取时进行计算。
但是,它只显示了该页面示例中存储列的示例,而不是虚拟列。它还说:
必须指定关键字 STORED 来选择生成列的存储类型。有关更多详细信息,请参阅创建表。
...链接到CREATE TABLE 页面的地方。在该页面中,文档明确指出模式是GENERATED ALWAYS AS (expression) STORED.
GENERATED ALWAYS AS ( generation_expr ) 存储
此子句将列创建为生成的列。该列无法写入,读取时将返回指定表达式的结果。
需要关键字 STORED 来表示该列将在写入时计算并将存储在磁盘上。
生成表达式可以引用表中的其他列,但不能引用其他生成的列。使用的任何函数和运算符都必须是不可变的。不允许引用其他表。
我实际上尝试在 Laravel (PHP) 中实现一个虚拟字段,这是我迄今为止在迁移中想到的:
DB::statement('ALTER TABLE entries ADD COLUMN do_hint BOOLEAN GENERATED ALWAYS AS (hint_hash OR hint_tags OR hint_due_date OR hint_created_at OR hint_updated_at) VIRTUAL');
Run Code Online (Sandbox Code Playgroud)
正如您在此语句中所见,表中有hint_hash,hint_tags和其他几个布尔列(以hint_*glob 模式命名)entries。我想计算do_hint即时,以便:
有人能帮我找出这个 SQL 查询在 Microsoft SQL Server 中不起作用的原因吗?
CREATE TABLE USER
(
USER_ID int NOT NULL PRIMARY KEY,
USER_L_NAME varchar(30) NOT NULL,
USER_F_NAME varchar(20) NOT NULL,
PASSWORD varchar(20) NOT NULL,
USERNAME varchar(20) NOT NULL,
DOB date NOT NULL,
COUNTRY char(30) NOT NULL,
STATE_REGION char(2),
EMAIL varchar(20) NOT NULL,
STREET varchar(50) NOT NULL,
CITY varchar(30),
ZIP_CODE char(5),
MOBILE_PHONE char(11)
);
Run Code Online (Sandbox Code Playgroud) 我盯着这个,眼珠子都流血了,我哪里少了一个括号?它也说
错误从命令中的第 1 行开始”。
错误报告的原因和操作部分为空白。
CREATE TABLE EVENTREQUEST(
EVENTNO VARCHAR2(8) CONSTRAINT EVENTNO_NOTNULL NOT NULL,
DATEHELD DATE CONSTRAINT DATEHELD_NOTNULL NOT NULL,
DATEREQ DATE CONSTRAINT DATEREQ_NOTNULL NOT NULL,
CUSTNO VARCHAR2(8) CONSTRAINT CUSTNO_NOTNULL2 NOT NULL,
FACNO VARCHAR2(8) CONSTRAINT CUSTNO_NOTNULL2 NOT NULL,
DATEAUTH DATE,
STATUS VARCHAR2(15) CHECK (STATUS IN ('Pending', 'Denied', 'Approved')) CONSTRAINT STATUS_NOTNULL NOT NULL,
ESTCOAST VARCHAR2(30) CONSTRAINT ESTCOAST_NOTNULL NOT NULL,
ESTAUDIENCE VARCHAR2(30) CHECK(ESTAUDIENCE > 0) CONSTRAINT ESTAUDIENCE_NOTNULL NOT NULL,
BUDNO VARCHAR2(8),
CONSTRAINT PK_EVENTNO PRIMARY KEY,
CONSTRAINT FK_CUSTONO FOREIGN KEY (CUSTNO) REFERENCES CUSTOMER(CUSTNO), …Run Code Online (Sandbox Code Playgroud) create-table ×10
sql ×6
mysql ×3
sql-server ×3
database ×1
dbi ×1
exists ×1
hive ×1
oracle ×1
perl ×1
postgresql ×1
sqlite ×1
syntax-error ×1