我的老师为我提供了这个sql代码,我以root用户身份登录到phpmyadmin,添加了一个名为webstore的数据库,然后尝试添加此代码并且它给了我错误。有谁能告诉我可能导致错误的原因是什么?我正在使用Mac,所以我不确定这是否有所不同,如果有必要,我可以给你一个链接到dropbox的附加信息。
这是包含所提供代码的Dropbox链接(Webstore.sql):https://www.dropbox.com/sh/usfmbeyxqd2q1g5/AADoLFbsz8cL30EC76d60i40a?dl=0
此外,zip文件包含我收到的错误的图像。请帮助!!
发生错误的SQL语句是
CREATE TABLE Shopping_Cart (
CustID INTEGER NOT NULL,
ProdID INTEGER NOT NULL,
NumOfItems INTEGER,
PRIMARY KEY CLUSTERED (CustID, ProdID)
CONSTRAINT FK_Cust FOREIGN KEY FK_Cat (CustID)
REFERENCES Customers (CustID)
ON DELETE RESTRICT
ON UPDATE RESTRICT,
CONSTRAINT FK_Prod FOREIGN KEY FK_Prod (ProdID)
REFERENCES Products (ProdID)
ON DELETE RESTRICT
ON UPDATE RESTRICT
);
错误读取
- 预计会有逗号或结束括号。 (位置153处的“CONSTRAINT”附近)
- 声明开始意外。 (位置192的“CustID”附近)
- 无法识别的声明类型。 (位置206处的“REFERENCES”附近)
醇>
答案 0 :(得分:0)
您的import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame();
final int max = 40000;
final JPanel pp = new JPanel();
final JProgressBar bb = new JProgressBar();
bb.setMaximum(max);
BufferedImage img = new BufferedImage(1920, 1080, BufferedImage.TYPE_INT_ARGB);
final Graphics2D g2 = (Graphics2D) img.getGraphics();
JButton b = new JButton();
b.setAction(new AbstractAction() {
@Override
public void actionPerformed(final ActionEvent e) {
for (int i = 0; i < max; i++) {
pp.paintComponents(g2);
bb.setValue(i);
}
}
});
b.setText("long EDT task");
pp.add(bb);
pp.add(b);
frame.add(pp);
frame.pack();
frame.setVisible(true);
}
}
行在PRIMARY KEY
之后需要一个逗号。
CONSTRAINT
修改强>
事实证明,SQL存在很多问题。这些表是按错误的顺序创建的,数据类型错误。这是我测试过的重写版本:
CREATE TABLE Shopping_Cart (
CustID INTEGER NOT NULL,
ProdID INTEGER NOT NULL,
NumOfItems INTEGER,
PRIMARY KEY CLUSTERED (CustID, ProdID),
CONSTRAINT FK_Cust FOREIGN KEY FK_Cat (CustID)
REFERENCES Customers (CustID)
ON DELETE RESTRICT
ON UPDATE RESTRICT,
CONSTRAINT FK_Prod FOREIGN KEY FK_Prod (ProdID)
REFERENCES Products (ProdID)
ON DELETE RESTRICT
ON UPDATE RESTRICT
);