Android 文本数据类型是否会限制长度?
我在Android 文本数据类型是否会限制长度?,android,mysql,text,sqldatatypes,Android,Mysql,Text,Sqldatatypes,我在MySQL中使用TEXT数据类型。但是当我查看该列时,我只看到fndjdjjjjjjj sekifkj sjkedkjfj sjekcjjjjwj…。在jwj之后,它应该有另一个文本,但我明白了…为什么会发生这种情况?我以为文本可以有无限的大小 我正在使用android,并且正在连接MySQL PHP 使用长文本 以下是限制 Type | Maximum length -----------+------------------------------------- TI
MySQL
中使用TEXT
数据类型。但是当我查看该列时,我只看到fndjdjjjjjjj sekifkj sjkedkjfj sjekcjjjjwj…
。在jwj之后,它应该有另一个文本,但我明白了…为什么会发生这种情况?我以为文本可以有无限的大小
我正在使用android,并且正在连接MySQL PHP 使用长文本
以下是限制
Type | Maximum length
-----------+-------------------------------------
TINYTEXT | 255 (2 8−1) bytes
TEXT | 65,535 (216−1) bytes = 64 KiB
MEDIUMTEXT | 16,777,215 (224−1) bytes = 16 MiB
LONGTEXT | 4,294,967,295 (232−1) bytes = 4 GiB
类型|最大长度
-----------+-------------------------------------
TINYTEXT | 255(28−1) 字节
正文| 65535(216)−1) 字节=64千字节
中文本| 16777215(224−1) 字节=16个MiB
长文本| 4294967295(232−1) 字节=4 GiB
使用长文本
以下是限制
Type | Maximum length
-----------+-------------------------------------
TINYTEXT | 255 (2 8−1) bytes
TEXT | 65,535 (216−1) bytes = 64 KiB
MEDIUMTEXT | 16,777,215 (224−1) bytes = 16 MiB
LONGTEXT | 4,294,967,295 (232−1) bytes = 4 GiB
类型|最大长度
-----------+-------------------------------------
TINYTEXT | 255(28−1) 字节
正文| 65535(216)−1) 字节=64千字节
中文本| 16777215(224−1) 字节=16个MiB
长文本| 4294967295(232−1) 字节=4 GiB
TINYTEXT
限制为255字节。请注意插入过程中的截断。请注意,ALTER
之后的数据是完整的。请注意,我使用的是MODIFY
,而不是CONVERT TO
mysql> CREATE TABLE so35474581 ( t TINYTEXT CHARACTER SET latin1 );
Query OK, 0 rows affected (0.24 sec)
mysql> INSERT INTO so35474581 (t) SELECT repeat('x', 444);
Query OK, 1 row affected, 1 warning (0.04 sec)
Records: 1 Duplicates: 0 Warnings: 1
mysql> SHOW WARNINGS;
+---------+------+----------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 't' at row 1 |
+---------+------+----------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT LENGTH(t), CHAR_LENGTH(t) FROM so35474581;
+-----------+----------------+
| LENGTH(t) | CHAR_LENGTH(t) |
+-----------+----------------+
| 255 | 255 |
+-----------+----------------+
1 row in set (0.00 sec)
mysql> ALTER TABLE so35474581 MODIFY t LONGTEXT CHARACTER SET latin1;
Query OK, 1 row affected (0.31 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> SELECT LENGTH(t), CHAR_LENGTH(t) FROM so35474581;
+-----------+----------------+
| LENGTH(t) | CHAR_LENGTH(t) |
+-----------+----------------+
| 255 | 255 |
+-----------+----------------+
1 row in set (0.00 sec)
所提到的转换为与更改字符集有关
插入超过几MB的内容时,数据包大小或其他设置可能会出现问题。TINYTEXT
限制为255字节。请注意插入过程中的截断。请注意,ALTER
之后的数据是完整的。请注意,我使用的是MODIFY
,而不是CONVERT TO
mysql> CREATE TABLE so35474581 ( t TINYTEXT CHARACTER SET latin1 );
Query OK, 0 rows affected (0.24 sec)
mysql> INSERT INTO so35474581 (t) SELECT repeat('x', 444);
Query OK, 1 row affected, 1 warning (0.04 sec)
Records: 1 Duplicates: 0 Warnings: 1
mysql> SHOW WARNINGS;
+---------+------+----------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 't' at row 1 |
+---------+------+----------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT LENGTH(t), CHAR_LENGTH(t) FROM so35474581;
+-----------+----------------+
| LENGTH(t) | CHAR_LENGTH(t) |
+-----------+----------------+
| 255 | 255 |
+-----------+----------------+
1 row in set (0.00 sec)
mysql> ALTER TABLE so35474581 MODIFY t LONGTEXT CHARACTER SET latin1;
Query OK, 1 row affected (0.31 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> SELECT LENGTH(t), CHAR_LENGTH(t) FROM so35474581;
+-----------+----------------+
| LENGTH(t) | CHAR_LENGTH(t) |
+-----------+----------------+
| 255 | 255 |
+-----------+----------------+
1 row in set (0.00 sec)
所提到的转换为与更改字符集有关
当插入超过几MB的内容时,您可能会遇到数据包大小或其他设置方面的问题。如果我在MySQL中已有数据。更改为LONGTEXT后,我在列中的数据会被删除吗?在MySQL中,如果现有字段是文本,那么您将拥有只允许其长度的数据。如果要更改,应更改可能影响数据的表结构。考虑备份并将其迁移到更新的结构我已更改为LongText,然后再次插入文本,文本仍然有限检查是否尝试插入unicode文本。您的表的字符集设置为latin1。将表格字符集更改为utf-8。ALTER TABLE tablename{….}转换为字符集utf8;更多信息,如果我已经在MySQL内的数据。更改为LONGTEXT后,我在列中的数据会被删除吗?在MySQL中,如果现有字段是文本,那么您将拥有只允许其长度的数据。如果要更改,应更改可能影响数据的表结构。考虑备份并将其迁移到更新的结构我已更改为LongText,然后再次插入文本,文本仍然有限检查是否尝试插入unicode文本。您的表的字符集设置为latin1。将表格字符集更改为utf-8。ALTER TABLE tablename{….}转换为字符集utf8;更多信息