【备忘】mysql创建外键约束失败的几个原因

当我保存时提示错误“cannot add foreign key constraint”,不能成功创建外键约束。从网上搜了很多,主要有一下几种情况吧:

1)要关联的字段类型或长度不一致。

2)两个要关联的表编码不一样。

3)某个表已经有记录了。

4)将“删除时”和“更新时”都设置相同,如都设置成CASCADE。

我从第一种情况开始检查,最后是通过第四个方法解决的问题,尽管解决后感觉并不难,但当时真的有点迷惑,整个搜索寻找解决办法的过程是很有收获的。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,下面是一个简单的录的Java Swing实现: 1. 界面设计 录界面主要包含一个文本框组件用于输入录内容,一个列表组件用于显示已经保存的录。 2. 数据存储 录的数据可以选择使用文件进行存储,这里使用文本文件来存储录内容。可以使用Java的File类和BufferedWriter类来进行文件读写操作。 3. 录编辑 录编辑界面需要提供一个文本框组件,让用户输入录内容。 4. 录保存 录保存界面需要提供一个按钮组件,当用户点击保存按钮时,将录内容写入到文本文件中。 5. 录浏览 录浏览界面需要提供一个列表组件,用于显示已经保存的录内容。可以使用Java的JList组件来实现。 下面是一个简单的录的Java Swing实现代码: ```java import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class MemoPad extends JFrame implements ActionListener { private JTextArea textArea; private JList<String> list; private DefaultListModel<String> model; public MemoPad() { super("录"); // 创建录编辑界面 JPanel editPanel = new JPanel(new BorderLayout()); textArea = new JTextArea(); editPanel.add(textArea, BorderLayout.CENTER); // 创建录保存界面 JPanel savePanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); JButton saveButton = new JButton("保存"); saveButton.addActionListener(this); savePanel.add(saveButton); // 创建录浏览界面 model = new DefaultListModel<String>(); list = new JList<String>(model); JScrollPane scrollPane = new JScrollPane(list); // 组合界面 JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, editPanel, scrollPane); splitPane.setResizeWeight(0.5); getContentPane().add(splitPane, BorderLayout.CENTER); getContentPane().add(savePanel, BorderLayout.SOUTH); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 300); setLocationRelativeTo(null); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("保存")) { // 将录内容保存到文本文件中 try { BufferedWriter writer = new BufferedWriter(new FileWriter("memo.txt", true)); writer.write(textArea.getText()); writer.newLine(); writer.close(); } catch (IOException ex) { ex.printStackTrace(); } // 将录内容添加到列表中 model.addElement(textArea.getText()); textArea.setText(""); } } public static void main(String[] args) { new MemoPad(); } } ``` 以上是一个简单的录的Java Swing实现,希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值