[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Perl or Python?



Hello!

On Thursday 19 March 2009 19:46:45 Victor Wagner wrote:
> Это где такие базы данных берут?
>
> $psql template1
> Welcome to psql 8.3.0, the PostgreSQL interactive terminal.
>
> Type:  \copyright for distribution terms
>        \h for help with SQL commands
>        \? for help with psql commands
>        \g or terminate with semicolon to execute query
>        \q to quit
>
> template1=# create table tests (date timestamp, value varchar);
> CREATE TABLE
>
> template1=# insert into tests values ('2009-02-31','foo');
> ERROR:  значение поля типа date/time вне диапазона: "2009-02-31"
> template1=# insert into tests values ('2009-02-31',NULL);
> ERROR:  значение поля типа date/time вне диапазона: "2009-02-31"
>
> И как-то глубоко ему пофиг NULL или не NULL в соседней колонке.
> Нельзя некорректную дату вставить.

Мой пример был с текстовым полем, поскольку обсуждаем нетипизированные 
значения. Ваш пример на типизированные значения в SQL.

При условии использования типа datetime (PostgreSQL) или аналога этой проблемы 
не будет. Но проблема с NULL останется:

create table tests(date text,value text);
insert into tests (date,value) values ('2009-02-01',NULL);
select count(value) from tests;
0
select count(*) from tests;
1

Вопрос: сколько записей в таблице? Обобщая пример на N полей, которые 
допускают NULL-значения, получаем N+1 способов (полагая count(const)=cont(*)) 
посчитать количество записей в таблице.

Best regards.

Reply to: