无法进行简单的SQL查询

时间:2016-03-29 01:24:07

标签: mysql sql

由于某种原因,前两个表将在SQL FIDDLE中查询,如果我将它们自己放入SQL Fiddle中。当我把所有表放在没有表的时候会查询并得到消息:表db_9_9eecb7d.customer不存在。任何提示或帮助将不胜感激。

这是我写的代码:

CREATE TABLE Customer
(   CustomerID INT(255) NOT NULL AUTO_INCREMENT,
    FirstName VARCHAR(255) NOT NULL,
    LastName VARCHAR(255) NOT NULL,
    StreetAddress VARCHAR(255) NOT NULL,
    Apartment VARCHAR(255) NOT NULL,
    City VARCHAR(255) NOT NULL,
    State VARCHAR(2) NOT NULL,
    ZipCode CHAR(9) NOT NULL,
    HomePhone CHAR(10) NOT NULL,
    MobilePhone CHAR(10) NOT NULL,
    OtherPhone CHAR(10) NOT NULL,
    PRIMARY KEY(CustomerID)
);

INSERT INTO Customer
    (FirstName, LastName, StreetAddress, Apartment, City, State,
        ZipCode, HomePhone, MobilePhone, OtherPhone)
VALUES('Joe', 'Shmoe', '190 Pine St', ' A 708 ', 'Polk',
    'WA', 98408, 4173231111, 1234567788, 5555551212);

SELECT CustomerID, (CONCAT(firstname, ' ', Lastname)) as FullName, StreetAddress, Apartment, City, State, ZipCode, Homephone, mobilephone, otherphone FROM customer;

CREATE TABLE Donut
(   
    DonutID INT(255) NOT NULL AUTO_INCREMENT,
    Name VARCHAR(255) NOT NULL,
    Description VARCHAR(255) NOT NULL,
    UnitPrice DECIMAL(3, 2) NOT NULL,
    PRIMARY KEY(DonutID
);

INSERT INTO Donut(Name, Description, UnitPrice)
VALUES('Plain', 'Plain Donut', '1.50'), ('Glazed', 'Glazed Donut', '1.75'), ('Cinnamon', 'Cinnamon Donut', '1.75'), ('Chocolate', 'Chocolate Donut', '1.75'), ('Sprinkle', 'Sprinkle Donut', '1.75'), ('Gluten-Free', 'Gluten-Free Donut', '2.00');

CREATE INDEX DonutName ON Donut(Name);

CREATE TABLE DonutOrder
    (DonutOrderID INT(255) NOT NULL,
        DonutID INT(255) NOT NULL,
        Quantity INT(255),
        PRIMARY KEY(DonutOrderID, donutID),
        INDEX Donut(donutID));

INSERT INTO DonutOrder(DonutID, Quantity)
VALUES((SELECT DonutID FROM Donut WHERE DonutID = 1), 1), 
      ((SELECT DonutID FROM Donut WHERE DonutID = 2), 5), 
      ((SELECT DonutID FROM Donut WHERE DonutID = 3), 12), 
      ((SELECT DonutID FROM Donut WHERE DonutID = 4), 3), 
      ((SELECT DonutID FROM Donut WHERE DonutID = 5), 4), 
      ((SELECT DonutID FROM Donut WHERE DonutID = 6), 5);

CREATE TABLE SalesInvoice
(
    CustomerID INT(255) NOT NULL,
    DonutOrderID INT(255) NOT NULL AUTO_INCREMENT,
    `Date`
    date NOT NULL,
    Spec_Hnd_Inst VARCHAR(255),
    PRIMARY KEY(DonutOrderID),
    INDEX Customer(CustomerID),
    FOREIGN KEY(CustomerID) REFERENCES Customer(CustomerID),
    INDEX DonutOrder(donutOrderID));

INSERT INTO SalesInvoice(CustomerID, DonutOrderID, `Date`, Spec_Hnd_Inst) VALUES(1, 1, '20160319', 'Extra Sugar');

1 个答案:

答案 0 :(得分:0)

This似乎有效。

在左侧添加以下内容以构建架构

CREATE TABLE Customer
(CustomerID INT(255) NOT NULL AUTO_INCREMENT,
FirstName VARCHAR(255) NOT NULL,
LastName VARCHAR(255) NOT NULL,
StreetAddress VARCHAR(255) NOT NULL,
Apartment VARCHAR(255) NOT NULL,
City VARCHAR(255) NOT NULL,
State VARCHAR(2) NOT NULL,
ZipCode CHAR(9) NOT NULL,
HomePhone CHAR(10) NOT NULL,
MobilePhone CHAR(10) NOT NULL,
OtherPhone CHAR(10) NOT NULL,
PRIMARY KEY (CustomerID));
INSERT INTO Customer 
(FirstName, LastName, StreetAddress, Apartment, City, State,
ZipCode, HomePhone, MobilePhone, OtherPhone)
VALUES ('Joe', 'Shmoe', '190 Pine St', ' A 708 ', 'Polk', 
'WA', 98408, 4173231111, 1234567788, 5555551212);
SELECT CustomerID, (CONCAT (firstname, ' ', Lastname)) as FullName, StreetAddress, Apartment, City, State, ZipCode, Homephone, mobilephone, otherphone FROM customer;

CREATE TABLE Donut
(DonutID INT(255) NOT NULL AUTO_INCREMENT,
Name VARCHAR(255) NOT NULL,
Description VARCHAR(255) NOT NULL,
UnitPrice DECIMAL(3,2) NOT NULL,
PRIMARY KEY (DonutID));
INSERT INTO Donut (Name, Description, UnitPrice)
VALUES ('Plain', 'Plain Donut', '1.50'),
('Glazed', 'Glazed Donut', '1.75'),
('Cinnamon', 'Cinnamon Donut', '1.75'),
('Chocolate', 'Chocolate Donut', '1.75'),
('Sprinkle', 'Sprinkle Donut', '1.75'),
('Gluten-Free', 'Gluten-Free Donut', '2.00');
CREATE INDEX DonutName ON Donut (Name);

CREATE TABLE DonutOrder
(DonutOrderID INT (255) NOT NULL AUTO_INCREMENT,
DonutID INT(255) NOT NULL,
Quantity INT(255),
PRIMARY KEY (DonutOrderID, donutID),
INDEX Donut(donutID));
INSERT INTO DonutOrder (DonutID, Quantity)
VALUES ((SELECT DonutID FROM Donut WHERE DonutID = 1), 1),
   ((SELECT DonutID FROM Donut WHERE DonutID = 2), 5),
   ((SELECT DonutID FROM Donut WHERE DonutID = 3), 12),
   ((SELECT DonutID FROM Donut WHERE DonutID = 4), 3),
   ((SELECT DonutID FROM Donut WHERE DonutID = 5), 4),
   ((SELECT DonutID FROM Donut WHERE DonutID =6), 5);

CREATE TABLE SalesInvoice
(CustomerID INT(255) NOT NULL,
DonutOrderID INT(255) NOT NULL AUTO_INCREMENT,
Date date NOT NULL,
Spec_Hnd_Inst VARCHAR(255),
PRIMARY KEY (DonutOrderID),
INDEX Customer (CustomerID),
FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID),
INDEX DonutOrder (donutOrderID));

INSERT INTO SalesInvoice (CustomerID, DonutOrderID, Date,Spec_Hnd_Inst ) VALUES (1, 1, '20160319', 'Extra Sugar');

并在右侧添加以下内容以检查插入的值

select * from SalesInvoice;
  

表'db_9_9eecb7d.customer'

我没有收到此错误,但似乎很简单 - 找不到表客户。数据库可能区分大小写,具体取决于其配置,因此请尝试使用Customer代替