【发布时间】:2011-10-10 13:14:45
【问题描述】:
例如 - 我从 cli 创建数据库和表并插入一些数据:
CREATE DATABASE testdb CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
USE testdb;
CREATE TABLE test (id INT, str VARCHAR(100)) TYPE=innodb CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
INSERT INTO test VALUES (9, 'some string');
现在我可以做到这一点,并且这些示例确实有效(所以 - 引号不会影响任何看起来的东西):
SELECT * FROM test WHERE id = '9';
INSERT INTO test VALUES ('11', 'some string');
所以 - 在这些示例中,我通过 string 选择了一行,该行实际上存储为 mysql 中的 INT,然后我在 INT 列中插入了一个 string .
我不太明白为什么它在这里的工作方式。为什么允许在INT列中插入字符串?
我可以将所有 MySQL 数据类型作为字符串插入吗?
这种行为标准是否跨不同的 RDBMS?
【问题讨论】: