我想知道为什么我的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');
2条答案
按热度按时间carvr3hs1#
作为初学者,您的原始mysql代码存在以下问题:
不支持在自动递增列中插入空字符串;相反,您不应该在该列中插入,而是让数据库自动为其赋值(这需要显式地列出要插入的列)
insert
(无论如何,这是sql中的最佳实践)你需要
insert
在表中Klasa
首先,然后插入到引用表中Czytelnicy
在将其转换为sql server时:auto_increment
不支持;你可以用identity(1, 1)
相反这个
int
不接受长度这将起作用:
db小提琴演示
agxfikkp2#
我已更改语法以使用ms sql server。请在插入新记录之前检查外键