20 lines
594 B
PL/PgSQL
20 lines
594 B
PL/PgSQL
BEGIN;
|
|
|
|
ALTER TABLE languages DROP COLUMN english_name;
|
|
ALTER TABLE languages DROP COLUMN self_name;
|
|
|
|
CREATE TABLE language_names (
|
|
-- name type constraints
|
|
id BIGSERIAL PRIMARY KEY,
|
|
lang_id BIGINT NOT NULL REFERENCES languages (id),
|
|
name_lang_id BIGINT NOT NULL REFERENCES languages (id),
|
|
value VARCHAR NOT NULL,
|
|
|
|
-- CONSTRAINT name CHECK (condition)
|
|
CONSTRAINT value_is_sane_text CHECK (is_sane_text(value))
|
|
);
|
|
|
|
CREATE UNIQUE INDEX languages_lang_name_lang
|
|
ON language_names (lang_id, name_lang_id);
|
|
|
|
COMMIT;
|