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

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

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

  1. create database Biblioteka;
  2. use Biblioteka;
  3. create table Autorzy
  4. (
  5. ID_Autora int(5) Primary Key auto_increment,
  6. Imie varchar(25),
  7. Nazwisko varchar(25)
  8. );
  9. create table Czytelnicy
  10. (
  11. ID_Czytelnika int(3) Primary Key auto_increment,
  12. ID_Klasy int(3),
  13. Imie varchar(25),
  14. Nazwisko varchar(25),
  15. PESEL char(11)
  16. );
  17. create table Klasa
  18. (
  19. ID_Klasy int(3) Primary Key auto_increment,
  20. Nazwa_Klasy varchar(5)
  21. );
  22. alter table Czytelnicy
  23. add foreign key (ID_Klasy) references Klasa(ID_Klasy);
  24. insert into Autorzy values('','Stefan','Batory');
  25. insert into Autorzy values('','Gabriela','Zapolska');
  26. insert into Autorzy values('','Joanne','Rowling');
  27. insert into Czytelnicy values('','1','Adam','Nowak','97091309264');
  28. insert into Czytelnicy values('','2','Anna','Kowalczyk','99062312546');
  29. insert into Czytelnicy values('','2','Jan','Dabrowski','77022610926');
  30. insert into Klasa values('','1A');
  31. insert into Klasa values('','2B');
  32. insert into Klasa values('','3C');
carvr3hs

carvr3hs1#

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

  1. create table Autorzy(
  2. ID_Autora int identity(1, 1) Primary Key,
  3. Imie varchar(25),
  4. Nazwisko varchar(25)
  5. );
  6. create table Czytelnicy(
  7. ID_Czytelnika int identity(1, 1) Primary Key,
  8. ID_Klasy int,
  9. Imie varchar(25),
  10. Nazwisko varchar(25),
  11. PESEL char(11)
  12. );
  13. create table Klasa(
  14. ID_Klasy int identity(1, 1)Primary Key,
  15. Nazwa_Klasy varchar(5)
  16. );
  17. alter table Czytelnicy
  18. add foreign key (ID_Klasy) references Klasa(ID_Klasy);
  19. insert into Autorzy(Imie, Nazwisko) values('Stefan','Batory');
  20. insert into Autorzy(Imie, Nazwisko) values('Gabriela','Zapolska');
  21. insert into Autorzy(Imie, Nazwisko) values('Joanne','Rowling');
  22. insert into Klasa(Nazwa_Klasy) values('1A');
  23. insert into Klasa(Nazwa_Klasy) values('2B');
  24. insert into Klasa(Nazwa_Klasy) values('3C');
  25. insert into Czytelnicy(ID_Klasy, Imie, Nazwisko, PESEL) values(1,'Adam','Nowak','97091309264');
  26. insert into Czytelnicy(ID_Klasy, Imie, Nazwisko, PESEL) values(2,'Anna','Kowalczyk','99062312546');
  27. insert into Czytelnicy(ID_Klasy, Imie, Nazwisko, PESEL) values(2,'Jan','Dabrowski','77022610926');

db小提琴演示

展开查看全部
agxfikkp

agxfikkp2#

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

  1. create database Biblioteka;
  2. go
  3. use Biblioteka;
  4. create table Autorzy(
  5. ID_Autora int Primary Key identity(1,1),
  6. Imie varchar(25),
  7. Nazwisko varchar(25));
  8. create table Czytelnicy(
  9. ID_Czytelnika int Primary Key identity(1,1),
  10. ID_Klasy int,
  11. Imie varchar(25),
  12. Nazwisko varchar(25),
  13. PESEL char(11));
  14. create table Klasa(
  15. ID_Klasy int Primary Key identity(1,1),
  16. Nazwa_Klasy varchar(5));
  17. alter table Czytelnicy
  18. add foreign key (ID_Klasy) references Klasa(ID_Klasy);
  19. insert into Autorzy values('Stefan','Batory');
  20. insert into Autorzy values('Gabriela','Zapolska');
  21. insert into Autorzy values('Joanne','Rowling');
  22. insert into Czytelnicy values('1','Adam','Nowak','97091309264');
  23. insert into Czytelnicy values('2','Anna','Kowalczyk','99062312546');
  24. insert into Czytelnicy values('2','Jan','Dabrowski','77022610926');
  25. insert into Klasa values('1A');
  26. insert into Klasa values('2B');
  27. insert into Klasa values('3C');
展开查看全部

相关问题