如何在createtablequery-MYSQL中使用CHAR_LENGTH()

如何在createtablequery-MYSQL中使用CHAR_LENGTH(),mysql,sql,Mysql,Sql,我的问题可能听起来很模糊,但我会尽可能把它弄清楚。在此之前,我在互联网和其他SO页面上做了一些研究,但没有结果。 是否可以像我们通常在SELECT子句中那样,在CREATE TABLE子句中使用CHAR\u LENGTH()函数: SELECT CHAR_LENGTH("SQL Tutorial") AS LengthOfString; 我想做的与此类似: CREATE TABLE `tbl_content` ( `id` int(11) NOT NULL AUTO_INCREMENT,

我的问题可能听起来很模糊,但我会尽可能把它弄清楚。在此之前,我在互联网和其他SO页面上做了一些研究,但没有结果。 是否可以像我们通常在
SELECT
子句中那样,在
CREATE TABLE
子句中使用
CHAR\u LENGTH()
函数:

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\u LENGTH
附近给出了一个错误。 确切地说,在将记录插入这样一个表的过程中,我希望服务器能够读取
内容
字段的长度,并将其作为默认值存储在
无字符
字段中


这可能吗?

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

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`)
);

正是我想要的,当记录被更新时,它也工作得很好。