【问题标题】:Mysql Create Table with substr as new columnMysql 以 substr 作为新列创建表
【发布时间】:2015-05-05 07:16:45
【问题描述】:

我是新来的。 我搜索了我的问题,但没有找到任何有用的东西。 如果我的问题已经有答案,请链接它。

我是数据库新手,所以可能会很容易。

无论如何,这是我的问题。

我想创建一个表,其列类似于ABCD12345; 并以此为基础制作另一列。

我的尝试看起来像这样

  1. 创建表集群 (
  2. 簇字符(32)不为空,
  3. CLUSTER_ID CHAR(9) NOT NULL ,
  4. PRIM_ADMIN_NAME CHAR(15) NOT NULL,

  5. CL_PACKAGE CHAR(9) NOT NULL,

  6. DATABASECHAR(3) set Substr(CL_PACKAGE,6,3));

但我得到一个语法错误。 我只看到了 Select 中使用的 Substr。

那么有可能吗? 还有其他方法可以让我的 3 个字母出现在额外的列中吗?

谢谢,

沙贡

【问题讨论】:

  • 我不明白,你不能在动态构建“创建表”语法的代码上创建子字符串?
  • 没有。我想创建一个自动从 CL_PACKAGE 中获取 3 个字符的表。
  • 但是 .... Substr(CL_PACKAGE,6,3) = 'CKA' [CL_PACKAGE 是一个字符串!]
  • 意味着我必须将它存储在字符串而不是字符中?抱歉,但我是新手。
  • 我不明白你为什么要创建一个列名是另一个列名的子字符串的表。您确定子字符串没有引用数据吗(在这种情况下,您需要操作插入语句。

标签: mysql substring substr


【解决方案1】:

示例: use test; create table table3 ( column1 varchar(32) not null, column2 varchar(16) ); CREATE TRIGGER substring_ins BEFORE INSERT ON table3 FOR EACH ROW set NEW.column2 = substring(new.column1, 1, 16); CREATE TRIGGER substring_upd BEFORE UPDATE ON table3 FOR EACH ROW set NEW.column2 = substring(new.column1, 1, 16); insert into table3 (column1) values ('log text for column 1'); select * from table3;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多