如何使此代码在 SQL 服务器上运行
How can I make this code work on SQL Server
我想知道为什么我的 SQL 代码在 SQL 服务器上无法正常工作,而当我将它上传到 phpmyadmin 时却运行良好。那些 SQL 之间有什么区别吗?有人能让这段代码在 SQL 服务器上正常运行吗?我只发布了数据库的一部分,但在您的帮助下我会完成其余部分。
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');
我更改了语法以使用 MS SQL Server.check 插入新记录之前的外键
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');
首先,您的原始 MySQL 代码存在问题:
不支持在自增列中插入空字符串;相反,您不应该插入该列,并让数据库自动为其分配一个值(这需要明确列出您想要 insert
的列,无论如何这是 SQL 中的最佳实践)
你需要先 insert
in table Klasa
,然后 插入引用 table Czytelnicy
将其翻译成 SQL 服务器时:
不支持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');
我想知道为什么我的 SQL 代码在 SQL 服务器上无法正常工作,而当我将它上传到 phpmyadmin 时却运行良好。那些 SQL 之间有什么区别吗?有人能让这段代码在 SQL 服务器上正常运行吗?我只发布了数据库的一部分,但在您的帮助下我会完成其余部分。
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');
我更改了语法以使用 MS SQL Server.check 插入新记录之前的外键
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');
首先,您的原始 MySQL 代码存在问题:
不支持在自增列中插入空字符串;相反,您不应该插入该列,并让数据库自动为其分配一个值(这需要明确列出您想要
insert
的列,无论如何这是 SQL 中的最佳实践)你需要先
insert
in tableKlasa
,然后 插入引用 tableCzytelnicy
将其翻译成 SQL 服务器时:
-
不支持
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');