DennisKingsman
@DennisKingsman
Студент

Как изменить запрос ms sql чтобы работал на postgresql?

Здравствуйте, как мне следует переписать запрос
на ms sql у меня было
CREATE TABLE dbo.Salary(
Salary_data int NOT NULL,
Salary_date datetime NOT NULL)
GO

ALTER TABLE Salary
ADD CONSTRAINT DF_Salary_Salary_date DEFAULT (getdate()) FOR Salary_date
GO

ALTER TABLE Salary
ADD Employee_ID int NOT NULL
GO

ALTER TABLE Salary
WITH CHECK ADD CONSTRAINT FK_Salary_Employee_ID FOREIGN KEY(Employee_ID)
REFERENCES EMPLOYEE(Employee_ID)
ON UPDATE CASCADE
ON DELETE CASCADE


на postgre его я вставил почти так же
CREATE TABLE salary
(
	employee_id integer NOT NULL,
	salary_data integer NOT NULL,
	salary_date date NOT NULL
);

ALTER TABLE salary
ADD CONSTRAINT DF_Salary_Salary_date DEFAULT (current_date) FOR salary_date;

ALTER TABLE salary
WITH CHECK ADD CONSTRAINT FK_Salary_Employee_ID FOREIGN KEY(employee_id)
REFERENCES EMPLOYEE(employee_id)
ON UPDATE CASCADE
ON DELETE CASCADE


Но его не устраивает default и with , скажите пожалуйста как следует это изменить?
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
а вы доку пробовали смотреть, как добавить default value, constraint, foreign key ?

ALTER TABLE salary ALTER COLUMN salary_date SET DEFAULT current_date;

ALTER TABLE salary
ADD CONSTRAINT FK_Salary_Employee_ID FOREIGN KEY(employee_id)
REFERENCES EMPLOYEE(employee_id)
ON UPDATE CASCADE
ON DELETE CASCADE


Таблица EMPLOYEE разумеется должна существовать, а поле employee_id должно быть уникальным.

https://dbfiddle.uk/?rdbms=postgres_10&fiddle=238a...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы