首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >订购表有什么问题?

订购表有什么问题?
EN

Database Administration用户
提问于 2021-04-22 04:58:00
回答 1查看 14关注 0票数 0
代码语言:javascript
复制
DROP DATABASE IF EXISTS kp;
CREATE DATABASE kp;

USE kp;

CREATE TABLE pens
(
    pen_id                  INT                       NOT NULL    AUTO_INCREMENT,
    pen_type                VARCHAR(30)               NOT NULL,
    pen_pricing             INT                       NOT NULL,
    construction_date       DATE,
    CONSTRAINT pen_id_pk
    PRIMARY KEY (pen_id)
);


CREATE TABLE customer_information
(
    customer_id              INT          NOT NULL     AUTO_INCREMENT,
    customer_first_name      VARCHAR(30),
    customer_last_name       VARCHAR(30),
    customer_address         VARCHAR(50)  NOT NULL,
    customer_city            VARCHAR(50),
    customer_state           VARCHAR(30),
    customer_country         VARCHAR(40),
    customer_zipcode         VARCHAR(20),
    customer_telephone       VARCHAR(13),
    CONSTRAINT customer_information_pk 
    PRIMARY KEY (customer_id)
);


CREATE TABLE discounts
(
    discount_id              INT           NOT NULL, 
    pen_discount             DECIMAL(5,2),
    discount_description     VARCHAR(50),
    CONSTRAINT discount_id_pk
    PRIMARY KEY (discount_id)
);


CREATE TABLE orders
(
    order_id                  INT          NOT NULL     AUTO_INCREMENT,
    customers_id              INT          NOT NULL,
    pens_id                   INT          NOT NULL,
    customers_address         VARCHAR(50)  NOT NULL,
    initial_prices            INT          NOT NULL,
    pen_discounts             DECIMAL(5,2),
    CONSTRAINT orders_pk
    PRIMARY KEY (order_id),
    CONSTRAINT orders_customer_id
        FOREIGN KEY (customers_id)
        REFERENCES customer_information (customer_id),
    CONSTRAINT orders_pen_id
        FOREIGN KEY (pens_id)
        REFERENCES pens (pen_id),
    CONSTRAINT orders_customer_address
        FOREIGN KEY (customers_address)
        REFERENCES customer_information (customer_address),
    CONSTRAINT orders_initial_price
        FOREIGN KEY (initial_prices)
        REFERENCES pens (pen_pricing),
    CONSTRAINT orders_pen_discounts
        FOREIGN KEY (pen_discounts)
        REFERENCES discounts (pen_discount)
);


CREATE TABLE shipping
(
    shipping_label          INT          auto_increment,
    order_id                INT          NOT NULL,
    customer_id             INT          NOT NULL,
    customer_address        VARCHAR(50)  NOT NULL,
    shipping_cost           INT          NOT NULL        DEFAULT 2.00,
    CONSTRAINT shipping_pk
    PRIMARY KEY (shipping_label),
    CONSTRAINT shipping_order_id
        FOREIGN KEY (order_id)
        REFERENCES orders (order_id),
    CONSTRAINT shipping_customer_id
        FOREIGN KEY (customer_id)
        REFERENCES orders (customer_id),
    CONSTRAINT shipping_customer_address
        FOREIGN KEY (customer_address)
        REFERENCES orders (customer_address)
);


INSERT INTO pens VALUES
(DEFAULT, "Fountain", "4.00", "2021-4-6"), 
(DEFAULT, "Ballpoint", "2.00", "2021-4-6"), 
(DEFAULT, "Calligraphy", "6.00", "2021-4-5"),
(DEFAULT, "Gel", "2.00", "2021-4-6"),
(DEFAULT, "Rollerball", "3.00", "2021-4-6"),
(DEFAULT, "Marker", "3.00", "2021-4-6"),
(DEFAULT, "Technical", "5.00", "2021-4-5");


INSERT INTO customer_information VALUES
(DEFAULT, "Joe", "Ryan", "7989 2nd Street", "Chambersburg", "PA", "US", "17201"),
(DEFAULT, "Erin", "Clouser", "8720 South Trout Ave.", "Washington", "PA", "US", "15301"),
(DEFAULT, "Karol", "McCLean", "9050 Littleton St.", "Ozone Park", "NY", "US", "11417"),
(DEFAULT, "Jack", "Ryan", "802 San Juan Rd.", "Pleasanton", "CA", "US", "94566"),
(DEFAULT, "Lenny", "Jones", "8603 Applegate St.", "Moorhead", "MN", "US", "56560"),
(DEFAULT, "Jon", "Holmes", "8540 Lakeshore Street", "Cantonment", "FL", "US", "32533"),
(DEFAULT, "George", "Flavin", "253 Theatre Rd.", "Jacksonville", "NC", "US", "28540"),
(DEFAULT, "Moly", "Beaver", "12 Mammoth Ave.", "Charlottesville", "VA", "US", "22901"),
(DEFAULT, "Harry", "Pope", "7646 Clinton Ave", "Covington", "GA", "US", "30014"),
(DEAFAULT, "Jones", "Terry", "113 St Andrews Lane", "CWNDARE", "", "UK", "CF44 1TE");


INSERT INTO discounts VALUES
("1", "10%", "Out of the Country"),
("1", "15%", "Social Media Post");


INSERT INTO orders VALUES
(DEFAULT, "3", "2", "9050 Littleton St.", "2.00", NULL),
(DEFAULT, "6", "4", "8540 Lakeshore Street", "2.00", NULL),
(DEFAULT, "10", "7", "113 St Andrews Lane", "5.00", "10%"),
(DEFAULT, "3", "1", "9050 Littleton St.", "4.00", NULL),
(DEFAULT, "2", "6", "8720 South Trout Ave.", "3.00", NULL),
(DEFAULT, "4", "4", "802 San Juan Rd.", "2.00", NULL),
(DEFAULT, "1", "5", "7989 2nd Street", "3.00", NULL),
(DEFAULT, "3", "5", "9050 Littleton St.", "3.00", NULL),
(DEFAULT, "7", "3", "253 Theatre Rd.", "6.00", NULL),
(DEFAULT, "3", "4", "9050 Littleton St.", "2.00", NULL);


INSERT INTO shipping VALUES
(DEFAULT, "1", "3", "3", DEFAULT),
(DEFAULT, "2", "6", "6", DEFAULT),
(DEFAULT, "3", "10", "10", DEFAULT),
(DEFAULT, "4", "3", "3", DEFAULT),
(DEFAULT, "5", "2", "2", DEFAULT),
(DEFAULT, "6", "4", "4", DEFAULT),
(DEFAULT, "7", "1", "1", DEFAULT),
(DEFAULT, "8", "3", "3", DEFAULT),
(DEFAULT, "9", "7", "7", DEFAULT),
(DEFAULT, "10", "3", "3", DEFAULT)
EN

回答 1

Database Administration用户

发布于 2021-04-22 05:24:10

订购表有什么问题?

逐个执行查询并读取错误消息。

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=8aad085d41ee0992f33e62e8f865b173

成功地执行了前3个查询。第四种产生错误

添加外键约束失败。引用表“orders_customer_address”中缺少约束“customer_information”的索引

也就是说,您必须为FK表达式customer_information (customer_address)创建一个索引。

在添加索引之后,我们会看到引用到另一个索引的相同错误。

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=9976aae257a849cd5e25e2d7df5955e7

修正后我们看到第三个类似的错误..。然后第四..。

在试图修复第四个错误之后,我们在表orders中看到了下一个错误消息:

表中不存在键列'customer_id‘

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=65ed6ae2acf23227e226bd27d9e8a24f

这可能是由于行中的shipping错误造成的。

代码语言:javascript
复制
CONSTRAINT shipping_customer_id
    FOREIGN KEY (customer_id)
    REFERENCES orders (customer_id),

因为order不包含具有指定名称的列,但包含列customers_id

任何情况-通过显示的方式调试您的代码,直到所有问题都解决为止。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/290247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档