+ -
当前位置:首页 → 问答吧 → 创建FEDERATED Table时遇到一个问题.

创建FEDERATED Table时遇到一个问题.

时间:2011-11-02

来源:互联网

向熟悉FEDERATED Table的朋友请教一下.

以下SQL创建了一个简单的FEDERATED Table:
SQL code
CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=utf8
CONNECTION='mysql://user:[email protected]/db/table';

我想将CONNECTION字符串保存在一个变量中,然后以这个变量代替单引号中的部分,即使用下面的SQL:
SQL code
DECLARE v_con varchar(100);
SET v_con = 'mysql://user:[email protected]/db/table';
CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=utf8
CONNECTION=v_con;

但是执行这些语句的时候会提示说语法错误.

请问熟悉FEDERATED Table的朋友,有没有办法让CONNECTION能够接受一个字符串变量,而不仅仅是单纯的字符串?

作者: ito_oti   发布时间: 2011-11-02

set @asql=concat('CREATE TABLE federated_table (
  id INT(20) NOT NULL AUTO_INCREMENT,
  name VARCHAR(32) NOT NULL DEFAULT '',
  other INT(20) NOT NULL DEFAULT '0',
  PRIMARY KEY (id),
  INDEX name (name),
  INDEX other_key (other)
)',v_con);
prepare stml from @asql;
execute stml;

作者: wwwwb   发布时间: 2011-11-02

恩 如楼上 拼接动态sql

作者: rucypli   发布时间: 2011-11-02

不是所有的参数都可以用变量的,比如表名,还有这些参数。

你可以在程序中进行字符串处理来生成这个SQL语句,然后再执行。

作者: ACMAIN_CHM   发布时间: 2011-11-02

相关阅读 更多