关于Mysql一些无语小用法

最近开始学习Mysql,其中给一个问题关于rename的问题,

。。我百度了好久终于找到了答案,先写下,以免以后忘记

rename,有两种方式,第一种改rename表的名字,这个语法是rename table (旧表名) to (新表名)

                                    第二种改rename表的 的   这个语法是alter table (列所在的表!表名) change (旧列名)to(新列名)+ 表的类型(INT,VARCHAR~)

关于Join的用法,暂时不细讲,贴https://www.cnblogs.com/fudashi/p/7491039.html

关于通配符%的应用,第一次在SQL必知必会看到它还不太了解,在电脑上用了,也是错的,然后就搁置一边,

但是现在我在学一个图书查询系统,就必须用到它了,


列入如果要查询一个以P开头的信息WHERE prod_name LIKE 'P%',注意单引号,单引号是核心,不能忘记,,

其次可能遇到的情况是在有""的情况下,通配符放置的位置会有很大影响

"%'"这是在双引号当中,%前面没有东西的情况下,单引号是放在后面的,前面不放

 "or last_name like '%"  这是在双引号当中,%前面有东西的情况下,单引号放在前面,后面不放.


好吧,我现在碰到一个小。。。。写了几次都没发觉,本想复制粘贴一气呵成的,还是自己老老实实码。。

PreparedStatement prc = connection.prepareStatement(sql);前面的PreparedStatement,后面是PrepareStatement

而且两则都是采取的驼峰试,所有很容易写错,在此给自己点小提示


现在说说关于外键foreign key的创建错误的问题

1.  两个字段的类型或者大小不严格匹配。例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint。另外,你还必须确定两个字段是否一个为 signed,而另一个又是unsigned(即:无符号),这两字段必须严格地一致匹配,更多关于signed和unsigned的信息,请参阅:http://www.verysimple.com/blog/?p=57

2. 试图设置外键的字段没有建立起索引,或者不是一个primary key(主键)。如果其中一个不是primary key的话,你必须先为它创建一个索引。

3. 其中一个或者两个表是MyISAM引擎的表。若想要使用外键约束,表必须是InnoDB引擎(实际上,如果两个表都是MyISAM 引擎的,这个错误根本不会发生,但也不会产生外键,只会建立索引)你需要检查表的引擎类型。

4. 外键的名字不能重复。你应该检查你的数据库以确保外健名字是唯一的,或者你在键名后面加上几个随机的字符以测试是否是这个原因。

5. 你可能设置了ON DELETE SET NULL,但是相关的键的字段又设置成了NOTS NULL值。你可能通过修改cascade的属性值或者把字段属性设置成allow null来解决。

6. 请确定你的Charset和Collate选项在表级和字段级上的一致。

7. 你可能设置为外键设置了一个默认值,如default=0。

8. ALTER声明中有语法错误



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值