可以設(shè)置的.
南川ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書(shū)合作)期待與您的合作!
MySQL有幾種數(shù)據(jù)類型可以限制類型的"長(zhǎng)度",有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、FLOAT(Length, Decimals)、DOUBLE(Length, Decimals)和DECIMAL(Length, Decimals)。
然而,這些數(shù)據(jù)類型的長(zhǎng)度,并不是都指數(shù)據(jù)的大小。具體說(shuō)就是:
(1)CHAR、VARCAHR的長(zhǎng)度是指字符的長(zhǎng)度,例如CHAR[3]則只能放字符串"123",如果插入數(shù)據(jù)"1234",則從高位截取,變?yōu)?123"。 VARCAHR同理。
(2)TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT的長(zhǎng)度,其實(shí)和數(shù)據(jù)的大小無(wú)關(guān)!Length指的是顯示寬度,舉個(gè)例子:
怎么查看mysql表字段的所有長(zhǎng)度
方法/步驟
一般查詢語(yǔ)句:SELECT `lcontent` FROM `caiji_ym_liuyan`
查詢數(shù)據(jù):
有些時(shí)候需要查詢某個(gè)字段的長(zhǎng)度為多少時(shí)候才顯示數(shù)據(jù):
SQL語(yǔ)句:SELECT `lcontent` FROM `caiji_ym_liuyan` where length(lcontent)=40
PS:在mysql中一個(gè)漢字等于3個(gè)字節(jié),所以查詢的時(shí)候需要轉(zhuǎn)換一下
特別要注意的就時(shí)候?qū)τ谧止?jié)的轉(zhuǎn)換
mysql版本 5.1
表類型: innodb, row_format=compact (這是默認(rèn)的行格式)
插入超過(guò)10個(gè)blob, blob的數(shù)據(jù)量很?。?68字節(jié)), 插入成功。
插入超過(guò)10個(gè)blob, blob的數(shù)據(jù)量很大(768字節(jié)), 插入失敗:報(bào) Got error 139 from storage engine。
注意,如果mysql服務(wù)器版本是5.1, innodb_file_format選項(xiàng)不存在, 也就無(wú)從談起B(yǎng)arracuda格式。 設(shè)置row_format=dynamic也是沒(méi)意義的。
mysql版本 5.5
表類型: innodb, row_format=compact (這是默認(rèn)的行格式)
插入超過(guò)10個(gè)blob, blob的數(shù)據(jù)量很大(768字節(jié)), 插入失敗:報(bào) Row size too large ( 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
表類型: innodb, row_format=dynamic (這是innodb的新文件存儲(chǔ)格式Barracuda所支持的行格式)
插入超過(guò)10個(gè)blob, blob的數(shù)據(jù)量很大(768字節(jié)), 插入成功
備注:
1) 實(shí)際測(cè)試測(cè)試我用的每個(gè)字段長(zhǎng)度都是100K+
2) 對(duì)于mysql5.5, 雖然支持Barracuda。但是默認(rèn)使用的還是老的格式:Antelope
除非在mysql的配置里面my.cnf修改:
innodb_file_per_table = 1
innodb_file_format = Barracuda
或者set global 命令動(dòng)態(tài)的修改:
SET GLOBAL innodb_file_format=barracuda;
SET GLOBAL innodb_file_per_table=1;
注意:
1) 修改后的innodb_file_format格式, 只影響后續(xù)創(chuàng)建的表。 也就是后續(xù)創(chuàng)建的表,可以支持把row_format設(shè)為dynamic
2) SET GLOBAL 只是在mysql服務(wù)器運(yùn)行期間有效,重啟后innodb_file_format還原為原來(lái)的格式。
3) 判斷一個(gè)表是否支持超過(guò)10個(gè)blob的字段的簡(jiǎn)單辦法:
show table status like 't1' \G
查看 Row_format , 如果是Compact, 必定不支持, 如果是dynamic, 則支持。
字段長(zhǎng)度都是自己規(guī)定的,不超過(guò)系統(tǒng)限制就行了,新建表的時(shí)候表還沒(méi)有,是看不到你建的字段的長(zhǎng)度的。只有表建立好后,你才可以查看自己建的表中的字段長(zhǎng)度。
不對(duì)。因?yàn)闆](méi)有排序的情況下,limit 1,并不能保證取的是第一條記錄。
步驟如下:
1、創(chuàng)建測(cè)試表;
create table test_aaa(id int, bbb int , ccc int);
2、插入測(cè)試數(shù)據(jù);
insert into test_aaa values(1, 111, 222);
insert into test_aaa values(3, 333, 444);
insert into test_aaa values(2, 555, 666);
3、查詢表中數(shù)據(jù);可以看下id并沒(méi)有排序;
select * from test_aaa;
4、重新排序后,再取第一條記錄;并去bbb字段的長(zhǎng)度;
select id, length(bbb) lb
from (select * from test_aaa order by id) t
limit 1;
直接寫(xiě)alter table語(yǔ)句修改字段類型及長(zhǎng)度,或者在數(shù)據(jù)庫(kù)連接客戶端右鍵修改表來(lái)設(shè)置字段長(zhǎng)度。