powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / счетчик и текущая дата, распознаваемые обеими субд
6 сообщений из 6, страница 1 из 1
счетчик и текущая дата, распознаваемые обеими субд
    #35539771
1qaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Пишу SQL-скрипт по созданию компонентов БД, который должен корректно выполняться как в MS SQL Server 2005, так и в PostgreSQL 1.8.4.
Вариант SQL Server 2005:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create table "dbo"."Стройки"
("ПК Стройки" int IDENTITY( 1 , 1 ) not null, --PostgresSQL не знает Identity(1,1)
"Наименование" 	varchar( 800 ) 		not null,
"Код стройки" 	varchar ( 50 ) 		not null,
"Сокращенно" 	varchar ( 50 )		not null,
"Дата создания" datetime default getdate()	not null, --PostgresSQL не знает getdate()
"Дата сдачи" 	datetime	 		null,
constraint "ПК_[Стройки и объекты].[Стройки]" primary key ("ПК Стройки"),
constraint "УНИК_[Стройки и объекты].[Стройки].[Наименование]" unique ("Сокращенно"),
constraint "УНИК_[Стройки и объекты].[Стройки].[Код стройки]" unique ("Код стройки")
)
Вариант PostgreSQL:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create table "Стройки и объекты"."Стройки"
("ПК Стройки" 	serial 			not null, -- SQL Server 2005 не знает serial
"Наименование" 	varchar( 800 ) 		not null,
"Код стройки" 	varchar ( 50 ) 		not null,
"Сокращенно" 	varchar ( 50 )		not null,
"Дата создания" date default now()	not null, -- SQL Server 2005 не знает now()
"Дата сдачи" 	date	 		null,
constraint "ПК_[Стройки и объекты].[Стройки]" primary key ("ПК Стройки"),
constraint "УНИК_[Стройки и объекты].[Стройки].[Наименование]" unique ("Сокращенно"),
constraint "УНИК_[Стройки и объекты].[Стройки].[Код стройки]" unique ("Код стройки")
)
Можно ли как-то прописать счетчик и функцию получения текущей даты понятными одновременно для обоих СУБД?
Кроме того, я использовал разные типы даты datetime и date, но данные субд имеют общий тип даты - timestamp, в котором дата хранится в формате не удобоваримом для пользователя. т.о. либо она не подходит, либо нужно использовать некую функцию, которая из штампа времени извлекает дату, причем функция должна быть в обеих субд, называться одинаково и принимать одинаковые параметры (иначе запрос не будет работать сразу в обоих субд)... Как решается эта проблема, если она решается вообще?
...
Рейтинг: 0 / 0
счетчик и текущая дата, распознаваемые обеими субд
    #35539844
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timestamp в MS SQL к дате отношения не имеет. САВСЕМ.

А по основному вопросу - ничего тебе не светит. Пиши два скрипта.
...
Рейтинг: 0 / 0
счетчик и текущая дата, распознаваемые обеими субд
    #35540086
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1qazВариант SQL Server 2005:
("ПК Стройки" int IDENTITY(1,1) not null, --PostgresSQL не знает Identity(1,1)
"Дата создания" datetime default getdate() not null, --PostgresSQL не знает getdate()

Вариант PostgreSQL:
("ПК Стройки" serial not null, -- SQL Server 2005 не знает serial
"Дата создания" date default now() not null, -- SQL Server 2005 не знает now()

Можно ли как-то прописать счетчик и функцию получения текущей даты понятными одновременно для обоих СУБД?попробуйте, работают ли в MSSQL стандартные default nextval() и current_date

("ПК Стройки" integer default nextval('sequence_name') not null,
"Дата создания" date default current_date not null,
...
Рейтинг: 0 / 0
счетчик и текущая дата, распознаваемые обеими субд
    #35540206
1qaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeXa NalBatпопробуйте, работают ли в MSSQL стандартные default nextval() и current_date

("ПК Стройки" integer default nextval('sequence_name') not null,
"Дата создания" date default current_date not null,
не выходит...
...
Рейтинг: 0 / 0
счетчик и текущая дата, распознаваемые обеими субд
    #35540985
LeXa NalBatпопробуйте, работают ли в MSSQL стандартные default nextval() и current_date

("ПК Стройки" integer default nextval('sequence_name') not null,
"Дата создания" date default current_date not null,Бог с тобой, какие nextval() в MS SQL SEVER ? О чём ты?!
В MS SQL Server нет понятия "последовательность" в том виде, в каком оно есть в PostgreSQL / Oracle. А следовательно, нет и никаких атрибутов этих последовательностей: ни nextval(), ни currval().
...
Рейтинг: 0 / 0
счетчик и текущая дата, распознаваемые обеими субд
    #35543507
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - ЭхБог с тобой, какие nextval() в MS SQL SEVER ? О чём ты?!ну я mssql не "кушал", а в доке по постгресу написано "CREATE SEQUENCE conforms to the SQL standard", поэтому и предложил автору попробовать. то есть CREATE SEQUENCE в mssql отсутствует?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / счетчик и текущая дата, распознаваемые обеими субд
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]