【问题标题】:how to set variable value in mysql CREATE TABLE query? Java如何在 mysql CREATE TABLE 查询中设置变量值?爪哇
【发布时间】:2015-06-10 05:09:29
【问题描述】:
String query = "CREATE TABLE user_post_data ("+str+" varchar(255), post_text varchar(255), post_image longblob, post_date date, like varchar(255), like_time timestamp, like_date date )";

这里,str 是代表用户电子邮件的字符串。我想创建一列用户的电子邮件 ID,但我在下面收到此错误:

未闭合的字符串字面量:指向 ..."+str+" ...

请提供建议。

【问题讨论】:

  • likeSQL 中的KEYWORD,尽量避免使用keywords 并确保str 不为空。
  • 您确实意识到您将在此数据库中只有一个名为 user_post_data 的表?并且该表将有一列仅对应一个电子邮件地址?我真的不明白将列名作为用户的电子邮件的目的。每个用户都会有一个单独的数据库吗?

标签: java mysql


【解决方案1】:

您不能创建包含特殊字符的 columnname,例如 @.

我相信电子邮件 ID 中包含 @,因此它不会创建表。

还要确保keywords 不用作列名。 like 是关键字。

尝试通过将@. 替换为$ 等其他字符来创建表格

String str = "example$gmail_com"

String query = "create table newTable("+str+" varchar(255));";

【讨论】:

  • 你的字符串 str 是一个 null 字符串,请给它一个值。
【解决方案2】:

like是SQL中的保留字,不能直接作为列名 为了实现 like 作为列名,您需要将其设置为 `like`

String query = "CREATE TABLE user_post_data ("+str+" varchar(255), post_text varchar(255), post_image longblob, post_date date, `like` varchar(255), like_time timestamp, like_date date )";

所以希望这会运行良好

for more details check out this link

【讨论】:

    【解决方案3】:

    你需要做的就是将你的变量像这样包含在 sql 语句中

    '"+变量+"'

    所以你的声明会变成:

    "CREATE TABLE user_post_data ('"+str+"' varchar(255), post_text varchar(255), post_image longblob, post_date date, like varchar(255), like_time timestamp, like_date date )";
    

    【讨论】:

      猜你喜欢
      • 2013-04-13
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多