如何在CREATE TABLE查询中使用CHAR_LENGTH() - MYSQL

时间:2018-06-14 12:06:02

标签: mysql sql

我的问题可能听起来很模糊,但我会尽可能地尝试使其足够清楚。在此之前,我已经在互联网和其他SO页面上做了一些研究,但无济于事。 是否可以像CHAR_LENGTH()条款一样在CREATE TABLE子句中使用SELECT函数:

SELECT CHAR_LENGTH("SQL Tutorial") AS LengthOfString;

我想做的是这样的:

CREATE TABLE `tbl_content` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `content` varchar(32) NOT NULL,
  `no_of_chars` int(4) NULL DEFAULT CHAR_LENGTH(`content`) ,
  PRIMARY KEY (`id`)
)

但上述CREATE语句在CHAR_LENGTH附近发出错误。 确切地说,在将记录插入到这样的表中期间,我希望服务器能够读取content字段的长度并将其存储在no_of_chars字段中作为默认值。

这可能吗?

1 个答案:

答案 0 :(得分:4)

是的,您可以使用生成的列:

CREATE TABLE `tbl_content` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `content` varchar(32) NOT NULL,
  `no_of_chars` int(4) AS ( CHAR_LENGTH(`content`)) ,
  PRIMARY KEY (`id`)
);

<强> DBFiddle Demo