Types 将mysql int传递给python的长度为
我有一个mysql数据库,其中定义了一个表:Types 将mysql int传递给python的长度为,types,mysql-python,Types,Mysql Python,我有一个mysql数据库,其中定义了一个表: CREATE TABLE IF NOT EXISTS tblModel ( model_id int NOT NULL AUTO_INCREMENT, model_file varchar(50) NOT NULL, model_name varchar(50) NOT NULL, model_descrip varchar(200) NOT NULL, target_index char(6) NOT NULL, training_days int
CREATE TABLE IF NOT EXISTS tblModel (
model_id int NOT NULL AUTO_INCREMENT,
model_file varchar(50) NOT NULL,
model_name varchar(50) NOT NULL,
model_descrip varchar(200) NOT NULL,
target_index char(6) NOT NULL,
training_days int NOT NULL,
trading_days int NOT NULL,
PRIMARY KEY(model_id));
奇怪的是,我注意到尽管mysql文档说int实际上是int(4),但我看到int字段实际上是作为int(11)创建的。这有点令人不安,因为根据文档,我的指示似乎没有得到遵守
当我使用mysqldb.database_connection.cursor将这个表查询到python中时,我看到int以long的形式出现——这并不奇怪
因此,我的问题有三个方面(按对我越来越重要的顺序):
1) 知道为什么int被创建为int(11)吗
2) 此表中的int字段将包含一个序列#,并且天数计数-分配给long的空间几乎没有必要。我应该关心浪费的空间吗
3) 假设我一直使用int(11)s(其他表中都有外键,打破并重新创建这些外键有点麻烦),有什么比显式转换cur.fetchall()或cur.fetchone()返回的int更好的解决方案吗
谢谢,我已经放弃了在这个问题上的回答:-)!我现在对mysql部分有了更好的理解,我也同意。了解Python实际上在相同的空间中存储int和long也是很有用的,尽管type()将它们视为不同的对象。