小编Kub*_*icz的帖子

Sqlite使用其他表中的检查列创建表

我有两个表:

位置

CREATE TABLE IF NOT EXISTS position(
  id_position INTEGER PRIMARY KEY AUTOINCREMENT,
  name TEXT NOT NULL,
  min REAL NOT NULL CHECK (min > 0),
  max REAL CHECK (max > 0),
);
Run Code Online (Sandbox Code Playgroud)

最低,最高工资链接

员工

CREATE TABLE IF NOT EXISTS employee (
  id_employee INTEGER PRIMARY KEY AUTOINCREMENT,
  id_position INTEGER NOT NULL,
  name TEXT NOT NULL,
  last_name TEXT NOT NULL,
  data_of_birth TEXT NOT NULL CHECK (DATE(data_of_birth) IS NOT NULL AND data_of_birth < DATE('now','localtime')),
  salary REAL NOT NULL CHECK (salary >= position.min AND …
Run Code Online (Sandbox Code Playgroud)

sqlite table check-constraints

5
推荐指数
1
解决办法
1949
查看次数

将 SQL SERVER 过程转换为 POSTGRESQL

我在 SQL Server 中有程序可以打印给定国家/地区的所有玩家。我尝试将其转换为 plpgsql,但出现错误。

SQL Server 过程

CREATE PROCEDURE kraj_pilkarze @kraj varchar(30)
AS
DECLARE @idkraj INT
DECLARE @nazwa_zespolu varchar(30)
SELECT @idkraj = id_kraj FROM kraj WHERE @kraj=nazwa
DECLARE kursor_pilk CURSOR
FOR SELECT imie,nazwisko, id_zespol, id_kraj FROM pilkarz
DECLARE @imie varchar(20), @nazwisko varchar(30), @zespol int, @d_kraj int
OPEN kursor_pilk
FETCH NEXT FROM kursor_pilk INTO @imie, @nazwisko,@zespol, @d_kraj
WHILE @@FETCH_STATUS=0
    BEGIN
    IF @d_kraj=@idkraj
        BEGIN
            SELECT @nazwa_zespolu = nazwa FROM zespol WHERE @zespol=id_zespol 
            PRINT @imie+' '+@nazwisko+', '+@nazwa_zespolu
            FETCH NEXT FROM kursor_pilk INTO …
Run Code Online (Sandbox Code Playgroud)

postgresql sql-server cursors plpgsql functions

2
推荐指数
1
解决办法
2397
查看次数

限制记录数取决于主键的部分

我为足球比赛创建了数据库。

我有 2 个具有多对多关系的表,因此我还创建了一个连接表:

裁判

CREATE TABLE referee (
  id_referee INT IDENTITY PRIMARY KEY,
  id_type_referee INT NOT NULL,
  first_name varchar(20) NOT NULL,
  last_name varchar(30) NOT NULL,
  date_of_birth DATE NOT NULL,
  FOREIGN KEY(id_type_referee) REFERENCES type_referee(id_type_referee)
);
Run Code Online (Sandbox Code Playgroud)

比赛

CREATE TABLE match (
  id_match INT IDENTITY PRIMARY KEY,
  id_stadium INT NOT NULL REFERENCES stadium(id_stadium),
  id_season INT NOT NULL REFERENCES season(id_season),
  date_of_match DATE NOT NULL,
  audience INT CHECK (audience>=0)
);
Run Code Online (Sandbox Code Playgroud)

接线台

CREATE TABLE match_referee(
  id_referee INT NOT NULL,
  id_match INT NOT NULL,
  PRIMARY KEY(id_referee,id_match), …
Run Code Online (Sandbox Code Playgroud)

database-design sql-server constraint

1
推荐指数
1
解决办法
59
查看次数