42 lines
1.4 KiB
MySQL
42 lines
1.4 KiB
MySQL
|
SELECT 'CREATE DATABASE main'
|
||
|
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'main')\gexec
|
||
|
|
||
|
CREATE TABLE categories
|
||
|
(
|
||
|
name text COLLATE pg_catalog."default",
|
||
|
id integer NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
|
||
|
CONSTRAINT categories_pkey PRIMARY KEY (id)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE customers
|
||
|
(
|
||
|
id integer NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
|
||
|
name text COLLATE pg_catalog."default",
|
||
|
email text COLLATE pg_catalog."default",
|
||
|
age integer,
|
||
|
"dateOfBirth" date,
|
||
|
CONSTRAINT customers_pkey PRIMARY KEY (id)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE customer_category
|
||
|
(
|
||
|
customer_id integer,
|
||
|
category_id integer,
|
||
|
notes text COLLATE pg_catalog."default",
|
||
|
id integer NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
|
||
|
CONSTRAINT "Category" FOREIGN KEY (category_id)
|
||
|
REFERENCES public.categories (id) MATCH SIMPLE
|
||
|
ON UPDATE NO ACTION
|
||
|
ON DELETE NO ACTION
|
||
|
NOT VALID,
|
||
|
CONSTRAINT "Customer" FOREIGN KEY (customer_id)
|
||
|
REFERENCES public.customers (id) MATCH SIMPLE
|
||
|
ON UPDATE NO ACTION
|
||
|
ON DELETE NO ACTION
|
||
|
NOT VALID
|
||
|
);
|
||
|
|
||
|
|
||
|
INSERT INTO customers (name, email, age) VALUES ('Mike', 'mike@mike.com', 30);
|
||
|
INSERT INTO categories (name) VALUES ('Books');
|