mysql - 如何在mysql中将创建表的数据类型指定为select?

标签 mysql database

当我运行附加示例时,它会创建具有列 id 和数据类型 bigint(295) 的表 我想将其定义为 int(11)。 在更复杂的查询中(我从组 concat 中获取了 id),我得到了文本而不是 int。

如何在mysql中将创建表的数据类型指定为select?

DROP TABLE IF EXISTS some_table;
CREATE TABLE IF NOT EXISTS some_table AS (
SELECT
CONVERT("123,456,789,987,654,321,741,852,963,147,258,369,123,456,789,987,654,321,741,852,963,147,258,369
  ,2123,456,789,987,654,321,741,852,963,147,258,369,123,456,789,987,654,321,741,852,963,147,258,369
  ,3123,456,789,987,654,321,741,852,963,147,258,369,123,456,789,987,654,321,741,852,963,147,258,369"
, SIGNED INTEGER) AS id);

最佳答案

我找不到直接的方法来做到这一点。 通过 alter table 解决它,对我有用,也许有更好的解决方案。

DROP TABLE IF EXISTS some_table;
CREATE TABLE IF NOT EXISTS some_table AS (
SELECT
CONVERT("123,456,789,987,654,321,741,852,963,147,258,369,123,456,789,987,654,321,741,852,963,147,258,369
  ,2123,456,789,987,654,321,741,852,963,147,258,369,123,456,789,987,654,321,741,852,963,147,258,369
  ,3123,456,789,987,654,321,741,852,963,147,258,369,123,456,789,987,654,321,741,852,963,147,258,369"
, SIGNED INTEGER) AS id);

ALTER TABLE some_table CHANGE id id INT( 11 ) NULL DEFAULT NULL ;

关于mysql - 如何在mysql中将创建表的数据类型指定为select?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11984519/

相关文章:

PHP 在 MYSQL 数据库和日期方面需要帮助

angularjs - 混合移动应用程序的数据库解决方案

mysql数据库设计: thread and reply of a reply?

java - 一段时间后失去与 MySQL 的连接,并且没有重新连接

mysql - Drupal SQL "Select count distinct"

php - 这是执行 mysql 查询的正确方法吗

mysql - 将架构(通过 .XSD 文件)导入 MySQL 数据库

mysql - 如何在 SQL 中连接多个表,其对象将使用继承建模?

c# - 两个 datagridview 绑定(bind)到同一个表。刷新不起作用

MySQL 多对多关系在大表上运行缓慢