修改字段
ALTER TABLE`sl_shop`CHANGE`weixin_m3``weixin_m3`VARCHAR(100)CHARACTERSETgbkCOLLATEgbk_chinese_ciNULLCOMMENT'微信菜单栏3文字'
Currently, MySQL formally implements foreign keys only when
using the InnoDB table type but generally ignores their existence
otherwise. Hence, foreign keys in MySQL are more of a theoretical
presence than a binding one, although this should change in later
versions of the software.
テーブルごとにストレージエンジンの選択が可能。MyISAMにはトランザクション機能がない、InnoDBにはPostgreSQL相当のトランザクション機能がある
MySQL 5.1 リファレンスマニュアルに
InnoDB以外のストレージエンジンについては、MySQL サーバでは現在、CREATE
TABLE ステートメントで FOREIGN
KEY構文のみが解析されますが、
この情報は使用/保存されません。近いうちに、この情報がテーブル仕様ファイルに保存され、mysqldump および
ODBC によって取得できるように、この実装を拡張する予定です。
さらにその後には、MyISAMテーブルについても外部キー制約を実装する予定です。
mySQL version confirmation C:\xampp\mysql\bin>mysql -u root
-p pinphp -e "select version();"
You are using safe update mode and you tried to update a table
without a WHERE that uses a KEY column To disable safe mode, toggle
the option in Preferences -> SQL Queries and reconnect.
Solution: SET SQL_SAFE_UPDATES = 0;
linux 下,mysql 的表名默认是区分大小写的,windows 下默认不区分大小写,我们大多数在windows
下开发,之后迁移到linux,可以修改配置是linux下,myql 表名不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的; MySQL在Windows下都不区分大小写
1. 修改 etc/my.cnf 文件 添加 lower_case_table_names =1
其中
0:区分大小写,1:不区分大小写
我的linux 服务器上没有找到my.cnf文件,解决方法如下
Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,
至于为什么没有这个文件而MySQL却也能正常启动和作用,在这有两个说法,
第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,
第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于rpm包安装的MySQL,
解决方法,只需要复制一个/usr/share/mysql目录下的。cnf文件到/etc目录,并改名为my.cnf即可。
2.
注意, lower_case_table_names =1
的配置需要添加在my.cnf 文件的mysqld 配置节中
3. 重启mysql 服务, service
mysql restart
4.
只有添加配置后添加的表才不区分大小写的,之前添加的表
还是区分大小写的,这点需要特别注意,建议最好做好编程规范,严格按照默认规则编写sql