Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

4.7 LAB - Implement independent entity (Sakila) Implement a new independent entity phone in the Sakila database. Attributes and relationships are shown in the following

4.7 LAB - Implement independent entity (Sakila)

Implement a new independent entity phone in the Sakila database. Attributes and relationships are shown in the following diagram:

image text in transcribed

The diagram uses Sakila naming conventions. Follow the Sakila conventions for your table and column names:

All lower case

Underscore separator between root and suffix

Foreign keys have the same name as referenced primary key

Write CREATE TABLE and ALTER TABLE statements that:

Implement the entity as a new phone table.

Implement the has relationships as foreign keys in the Sakila customer, staff, and store tables.

Remove the existing phone column from the Sakila address table.

Step 2 requires adding a foreign key constraint to an existing table. Ex:

ALTER TABLE customer

ADD FOREIGN KEY (phone_id) REFERENCES phone(phone_id)

ON DELETE SET NULL

ON UPDATE CASCADE;

Specify data types as follows:

phone_id, phone_number, and country_code have data type INT.

phone_type has date type VARCHAR(12) and contains strings like 'Home', 'Mobile', and 'Other'.

Apply these constraints:

NOT NULL constraints correspond to cardinalities on the diagram above.

Foreign key actions are SET NULL for delete rules and CASCADE for update rules.

Specify a suitable column as the phone table primary key.

My attempt:

CREATE TABLE phone ( `phone_id` INT NOT NULL, `country_code` INT NULL, `phone_type` ENUM( 'Home', 'Mobile', 'Other'), `phone_number` VARCHAR(45) NULL, PRIMARY KEY (`phone_id`), UNIQUE INDEX `phone_id_UNIQUE` (`phone_id` ASC));

ALTER TABLE customer ADD COLUMN `phone_id`, ADD CONSTRAINT `phone_fk` FOREIGN KEY (`phone_id`) REFERENCES phone (`phone_id`) ON DELETE SET NULL ON UPDATE CASCADE; ;

ALTER TABLE staff ADD COLUMN `phone_id`, ADD CONSTRAINT `phone_fk` FOREIGN KEY (`phone_id`) REFERENCES phone (`phone_id`) ON DELETE SET NULL ON UPDATE CASCADE; ;

ALTER TABLE store ADD COLUMN `phone_id`, ADD CONSTRAINT `phone_fk` FOREIGN KEY (`phone_id`) REFERENCES phone (`phone_id`) ON DELETE SET NULL ON UPDATE CASCADE; ALTER TABLE address DROP COLUMN `phone`;

Output:

ERROR 1064 (42000) at line 9: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ', ADD CONSTRAINT `phone_fk` FOREIGN KEY (`phone_id`) REFERENCES phone (`phone_' at line 2

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Main Memory Database Systems

Authors: Frans Faerber, Alfons Kemper, Per-Åke Alfons

1st Edition

1680833243, 978-1680833249

More Books

Students also viewed these Databases questions