Трюк дня. Как узнать размер базы данных PostgreSQL?
Такое решение полностью стандартно, работало, и будет работать на любой СУБД:
create table patterns (pattern varchar (32));
insert into patterns values ('bla%');
insert into patterns values ('%foo%');
insert into patterns values ('batz%');
select something
from tab
where exists (
select 1
from patterns
where something like pattern
);
Вместо таблицы можно использовать любую конструкцию способную вернуть строки, такие как например: представление, табличные функции, коллекции и т.д.
#tips
Такое решение полностью стандартно, работало, и будет работать на любой СУБД:
create table patterns (pattern varchar (32));
insert into patterns values ('bla%');
insert into patterns values ('%foo%');
insert into patterns values ('batz%');
select something
from tab
where exists (
select 1
from patterns
where something like pattern
);
Вместо таблицы можно использовать любую конструкцию способную вернуть строки, такие как например: представление, табличные функции, коллекции и т.д.
#tips
🤡7👍1
Трюк дня. Что означает CONSTRAINT?
Что означает CONSTRAINT в данном контексте? Для чего может быть ограничение CONSTRAINT person_pkey PRIMARY KEY (id)?
Есть 2 таблицы :
#tips
Что означает CONSTRAINT в данном контексте? Для чего может быть ограничение CONSTRAINT person_pkey PRIMARY KEY (id)?
Есть 2 таблицы :
CREATE TABLE company(Решение будет вечером.
id integer NOT NULL,
name character varying,
CONSTRAINT company_pkey PRIMARY KEY (id)
);
CREATE TABLE person(
id integer NOT NULL,
name character varying,
company_id integer,
CONSTRAINT person_pkey PRIMARY KEY (id)
);
#tips
Трюк дня. Что означает CONSTRAINT?
Определение:
CONSTRAINT company_pkey PRIMARY KEY (id)
эквивалентно определению:
PRIMARY KEY (id)
и означает, что id является первичным ключом таблицы.
Т.к. в данном случае первичный ключ состоит из одного столбца, то его можно было бы указать на уровне поля:
#tips
Определение:
CONSTRAINT company_pkey PRIMARY KEY (id)
эквивалентно определению:
PRIMARY KEY (id)
и означает, что id является первичным ключом таблицы.
Т.к. в данном случае первичный ключ состоит из одного столбца, то его можно было бы указать на уровне поля:
CREATE TABLE company(Возможность определения ключа на уровне таблицы полезна если ключ — составной.
id integer PRIMARY KEY,
name character varying
);
PRIMARY KEY (id, name)В первом случае у ограничения задано имя. Это имя будет выводиться в сообщениях об ошибках. Также по имени можно это ограничение удалить. В случае если имя ограничения не задано явно, оно будет сгенерировано СУБД.
#tips
👍4