Mysql 代码:1064。您的SQL语法有错误;'错误代码:158在第13行对本机函数“concat”的调用中参数不正确
我的代码如下:Mysql 代码:1064。您的SQL语法有错误;'错误代码:158在第13行对本机函数“concat”的调用中参数不正确,mysql,Mysql,我的代码如下: SELECT CONCAT("A purchase with the purchase ID of ", PURCHASE.PurchaseID, " is an online purchase of type ",ONLINEPURCHASE.OnlineType, " and also a walkin purchase of location ", WALIINPURCHASE.ShopLocation )
SELECT CONCAT("A purchase with the purchase ID of ", PURCHASE.PurchaseID,
" is an online purchase of type ",ONLINEPURCHASE.OnlineType, "
and also a walkin purchase of location ", WALIINPURCHASE.ShopLocation )
from (PURCHASE, ONLINEPURCHASE,WALIKINPURCHASE)
where (PURCHASE.PurchaseID=ONLINEPURCHASE.PurchaseID
and PURCHASE.PurchaseID=WALKINPURCHASE.PurchaseID);
-- CREATE TABLE AUTHOR
CREATE TABLE AUTHOR (
AuthorID VARCHAR(12) NOT NULL,
Name VARCHAR(50) NOT NULL,
CONSTRAINT AUTHOR_PKEY PRIMARY KEY (AuthorID)
);
-- CREATE TABLE BOOK
CREATE TABLE BOOK (
BookID VARCHAR(12) NOT NULL,
Title VARCHAR(80) NOT NULL,
Price DECIMAL(4,2) NOT NULL,
CONSTRAINT BOOK_PKEY PRIMARY KEY (BookID)
);
-- CREATE TABLE BOOKAUTHOR
CREATE TABLE BOOKAUTHOR (
BookID VARCHAR(12) NOT NULL,
AuthorID VARCHAR(12) NOT NULL,
CONSTRAINT BOOKAUTHOR_PKEY PRIMARY KEY (BookID, AuthorID),
CONSTRAINT BOOKAUTHOR_FKEY1 FOREIGN KEY (BookID) REFERENCES BOOK (BookID),
CONSTRAINT BOOKAUTHOR_FKEY2 FOREIGN KEY (AuthorID) REFERENCES AUTHOR (AuthorID)
);
-- CREATE TABLE CUSTOMER
CREATE TABLE CUSTOMER (
CustomerID VARCHAR(12) NOT NULL,
Name VARCHAR(50) NOT NULL,
CONSTRAINT CUSTOMER_PKEY PRIMARY KEY (CustomerID)
);
-- CREATE TABLE PURCHASE
CREATE TABLE PURCHASE (
PurchaseID VARCHAR(12) NOT NULL,
PurchaseQty DECIMAL(4) NOT NULL,
PurchaseDate DATE NOT NULL,
BookID VARCHAR(12) NOT NULL,
CustomerID VARCHAR(12) NOT NULL,
CONSTRAINT PURCHASE_PKEY PRIMARY KEY (PurchaseID),
CONSTRAINT PURCHASE_FKEY1 FOREIGN KEY (BookID) REFERENCES BOOK (BookID),
CONSTRAINT PURCHASE_FKEY2 FOREIGN KEY (CustomerID) REFERENCES CUSTOMER (CustomerID)
);
-- CREATE TABLE ONLINEPURCHASE
CREATE TABLE ONLINEPURCHASE (
PurchaseID VARCHAR(12) NOT NULL,
OnlineType VARCHAR(12) NOT NULL,
CONSTRAINT ONLINEPURCHASE_PKEY PRIMARY KEY (PurchaseID),
CONSTRAINT ONLINEPURCHASE_FKEY1 FOREIGN KEY (PurchaseID) REFERENCES PURCHASE (PurchaseID)
);
-- CREATE TABLE WALKINPURCHASE
CREATE TABLE WALKINPURCHASE (
PurchaseID VARCHAR(12) NOT NULL,
ShopLocation VARCHAR(50) NOT NULL,
CONSTRAINT WALKINPURCHASE_PKEY PRIMARY KEY (PurchaseID),
CONSTRAINT WALKINPURCHASE_FKEY1 FOREIGN KEY (PurchaseID) REFERENCES PURCHASE (PurchaseID)
);
我正在尝试执行脚本查找数据库中违反以下一致性约束的所有案例。
“作为在线购买的购买不应是预约购买”
脚本必须将一致性约束的验证结果列为一个单列表,并将以下消息列为以下行。
采购ID为的采购是类型为的在线采购,也是位置的walkin采购
我的数据库创建如下:
SELECT CONCAT("A purchase with the purchase ID of ", PURCHASE.PurchaseID,
" is an online purchase of type ",ONLINEPURCHASE.OnlineType, "
and also a walkin purchase of location ", WALIINPURCHASE.ShopLocation )
from (PURCHASE, ONLINEPURCHASE,WALIKINPURCHASE)
where (PURCHASE.PurchaseID=ONLINEPURCHASE.PurchaseID
and PURCHASE.PurchaseID=WALKINPURCHASE.PurchaseID);
-- CREATE TABLE AUTHOR
CREATE TABLE AUTHOR (
AuthorID VARCHAR(12) NOT NULL,
Name VARCHAR(50) NOT NULL,
CONSTRAINT AUTHOR_PKEY PRIMARY KEY (AuthorID)
);
-- CREATE TABLE BOOK
CREATE TABLE BOOK (
BookID VARCHAR(12) NOT NULL,
Title VARCHAR(80) NOT NULL,
Price DECIMAL(4,2) NOT NULL,
CONSTRAINT BOOK_PKEY PRIMARY KEY (BookID)
);
-- CREATE TABLE BOOKAUTHOR
CREATE TABLE BOOKAUTHOR (
BookID VARCHAR(12) NOT NULL,
AuthorID VARCHAR(12) NOT NULL,
CONSTRAINT BOOKAUTHOR_PKEY PRIMARY KEY (BookID, AuthorID),
CONSTRAINT BOOKAUTHOR_FKEY1 FOREIGN KEY (BookID) REFERENCES BOOK (BookID),
CONSTRAINT BOOKAUTHOR_FKEY2 FOREIGN KEY (AuthorID) REFERENCES AUTHOR (AuthorID)
);
-- CREATE TABLE CUSTOMER
CREATE TABLE CUSTOMER (
CustomerID VARCHAR(12) NOT NULL,
Name VARCHAR(50) NOT NULL,
CONSTRAINT CUSTOMER_PKEY PRIMARY KEY (CustomerID)
);
-- CREATE TABLE PURCHASE
CREATE TABLE PURCHASE (
PurchaseID VARCHAR(12) NOT NULL,
PurchaseQty DECIMAL(4) NOT NULL,
PurchaseDate DATE NOT NULL,
BookID VARCHAR(12) NOT NULL,
CustomerID VARCHAR(12) NOT NULL,
CONSTRAINT PURCHASE_PKEY PRIMARY KEY (PurchaseID),
CONSTRAINT PURCHASE_FKEY1 FOREIGN KEY (BookID) REFERENCES BOOK (BookID),
CONSTRAINT PURCHASE_FKEY2 FOREIGN KEY (CustomerID) REFERENCES CUSTOMER (CustomerID)
);
-- CREATE TABLE ONLINEPURCHASE
CREATE TABLE ONLINEPURCHASE (
PurchaseID VARCHAR(12) NOT NULL,
OnlineType VARCHAR(12) NOT NULL,
CONSTRAINT ONLINEPURCHASE_PKEY PRIMARY KEY (PurchaseID),
CONSTRAINT ONLINEPURCHASE_FKEY1 FOREIGN KEY (PurchaseID) REFERENCES PURCHASE (PurchaseID)
);
-- CREATE TABLE WALKINPURCHASE
CREATE TABLE WALKINPURCHASE (
PurchaseID VARCHAR(12) NOT NULL,
ShopLocation VARCHAR(50) NOT NULL,
CONSTRAINT WALKINPURCHASE_PKEY PRIMARY KEY (PurchaseID),
CONSTRAINT WALKINPURCHASE_FKEY1 FOREIGN KEY (PurchaseID) REFERENCES PURCHASE (PurchaseID)
);
您的表名错误。在CONCAT函数中,您将其称为WALIINPURCHASE,在FROM中,您将其称为WALIKINPURCHASE。见下文: 从…,…,瓦利金采购 以及: CONCAT…,,,,,,,,WALIINPURCHASE.ShopLocation 根据您的创建SQL,正确的方法是WALKINPURCHASE
将其更正为CONCAT上的WALKINPURCHASE和FROM可以解决您的问题。您是否将此表的所有引用更改为WALKINPURCHASE?是选择CONCAT购买,购买ID为PurchaseID,是类型为ONLINEPURCHASE.OnlineType的在线购买,也是位置为的walkin购买,WALKINPURCHASE.ShopLocation from PURCHASE、Online PURCHASE、WALKINPURCHASE where PURCHASE.PurchaseID=Online PurchaseID和PurchaseID=WALKINPURCHASE.PurchaseID;我运行了您的CREATESQL,然后执行了SELECT。一切正常,没有错误。请确保数据库中的表名正确无误,并且没有输入错误,好吗?