如何使此代码在sql server上工作

7gyucuyw  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(279)

我想知道为什么我的sql代码在sqlserver上不能正常工作,而当我上传到phpmyadmin上时,它却能正常工作。这些sql之间有什么区别吗?有人能让这段代码在SQLServer上正常工作吗?我只公布了数据库的一部分,但在你的帮助下,我将完成其余的工作。

create database Biblioteka;

use Biblioteka;

create table Autorzy
(
    ID_Autora int(5) Primary Key auto_increment,
    Imie varchar(25),
    Nazwisko varchar(25)
);

create table Czytelnicy
(
    ID_Czytelnika int(3) Primary Key auto_increment,
    ID_Klasy int(3),
    Imie varchar(25),
    Nazwisko varchar(25),
    PESEL char(11)
);

create table Klasa
(
    ID_Klasy int(3) Primary Key auto_increment,
    Nazwa_Klasy varchar(5)
);

alter table Czytelnicy
add foreign key (ID_Klasy) references Klasa(ID_Klasy);

insert into Autorzy values('','Stefan','Batory');
insert into Autorzy values('','Gabriela','Zapolska');
insert into Autorzy values('','Joanne','Rowling');

insert into Czytelnicy values('','1','Adam','Nowak','97091309264');
insert into Czytelnicy values('','2','Anna','Kowalczyk','99062312546');
insert into Czytelnicy values('','2','Jan','Dabrowski','77022610926');

insert into Klasa values('','1A');
insert into Klasa values('','2B');
insert into Klasa values('','3C');
carvr3hs

carvr3hs1#

作为初学者,您的原始mysql代码存在以下问题:
不支持在自动递增列中插入空字符串;相反,您不应该在该列中插入,而是让数据库自动为其赋值(这需要显式地列出要插入的列) insert (无论如何,这是sql中的最佳实践)
你需要 insert 在表中 Klasa 首先,然后插入到引用表中 Czytelnicy 在将其转换为sql server时: auto_increment 不支持;你可以用 identity(1, 1) 相反
这个 int 不接受长度
这将起作用:

create table Autorzy(
    ID_Autora int identity(1, 1) Primary Key,
    Imie varchar(25),
    Nazwisko varchar(25)
);

create table Czytelnicy(
    ID_Czytelnika int identity(1, 1) Primary Key,
    ID_Klasy int,
    Imie varchar(25),
    Nazwisko varchar(25),
    PESEL char(11)
);

create table Klasa(
    ID_Klasy int identity(1, 1)Primary Key,
    Nazwa_Klasy varchar(5)
);

alter table Czytelnicy
add foreign key (ID_Klasy) references Klasa(ID_Klasy);

insert into Autorzy(Imie, Nazwisko) values('Stefan','Batory');
insert into Autorzy(Imie, Nazwisko) values('Gabriela','Zapolska');
insert into Autorzy(Imie, Nazwisko) values('Joanne','Rowling');

insert into Klasa(Nazwa_Klasy) values('1A');
insert into Klasa(Nazwa_Klasy) values('2B');
insert into Klasa(Nazwa_Klasy) values('3C');

insert into Czytelnicy(ID_Klasy, Imie, Nazwisko, PESEL) values(1,'Adam','Nowak','97091309264');
insert into Czytelnicy(ID_Klasy, Imie, Nazwisko, PESEL) values(2,'Anna','Kowalczyk','99062312546');
insert into Czytelnicy(ID_Klasy, Imie, Nazwisko, PESEL) values(2,'Jan','Dabrowski','77022610926');

db小提琴演示

agxfikkp

agxfikkp2#

我已更改语法以使用ms sql server。请在插入新记录之前检查外键

create database Biblioteka;
go

use Biblioteka;

create table Autorzy(
ID_Autora  int Primary Key identity(1,1),
Imie varchar(25),
Nazwisko varchar(25));

create table Czytelnicy(
ID_Czytelnika int Primary Key identity(1,1),
ID_Klasy int,
Imie varchar(25),
Nazwisko varchar(25),
PESEL char(11));

create table Klasa(
ID_Klasy int Primary Key identity(1,1),
Nazwa_Klasy varchar(5));

alter table Czytelnicy
add foreign key (ID_Klasy) references Klasa(ID_Klasy);

insert into Autorzy values('Stefan','Batory');
insert into Autorzy values('Gabriela','Zapolska');
insert into Autorzy values('Joanne','Rowling');

insert into Czytelnicy values('1','Adam','Nowak','97091309264');
insert into Czytelnicy values('2','Anna','Kowalczyk','99062312546');
insert into Czytelnicy values('2','Jan','Dabrowski','77022610926');

insert into Klasa values('1A');
insert into Klasa values('2B');
insert into Klasa values('3C');

相关问题