【问题标题】:Create auto_incremented table name?创建 auto_incremented 表名?
【发布时间】:2013-10-17 19:11:41
【问题描述】:

我想知道如何使用 PHP 和 mysql 每次都创建一个具有唯一名称的表。

例如,如果我单击提交,将创建一个名为“1”的表。 然后,如果我再次执行此操作,则会添加另一个表并将其命名为“2”

我四处搜索,但只能找到如何自动增加表内列的答案,所以我希望它是相同的代码,我试过这个:

mysql_query("CREATE TABLE INT NOT NULL AUTO_INCREMENT PRIMARY KEY(TestColumn CHAR(30))");

没有用。

那么如何创建一个 auto_incremented 表???

【问题讨论】:

  • 我不确定这在 MySQL 中是否可行。我猜您可能会使用 CREATE TABLE IF NOT EXISTS,如果失败,请增加数字并重试。不用说,这种方法是次优的。我不知道你为什么需要这个,但我确信有更好的方法来做到这一点。您是否尝试过创建临时表?
  • 放入一个循环,连接到一些标准名称的计数器。
  • 您还可以解析“显示表”的输出,获取最高的“表名”并转换为整数,加一并创建新表。
  • 您确定要这样做吗?创建具有无意义名称(例如 2)的表会激怒尝试使用您的数据的人。

标签: php mysql auto-increment


【解决方案1】:

创建一个存储序列号的简单文件。然后,当您的脚本创建一个表时,您将文件中的计数器加一。下一次,您读取数字并将其用作表名。当然,您可以在表格或平面文件中执行此操作。

为了了解存在哪些表以及它们的用途,您最好创建一个主表,不仅存储最新的表,还存储所有创建的表。

我不知道您为什么要这样做。我认为没有充分的理由想要这样做。

【讨论】:

  • 或者有一个包含动态创建表信息的表?
  • 或创建 10,000 个表并根据需要更改结构。我的意思是可能性是无穷无尽的,但这个系统将是一个难以维护的地狱。
【解决方案2】:

创建一个表并在该表中存储号码或号码名称。然后你可以在那里查找MAX number。

【讨论】:

    【解决方案3】:

    首先,这个函数在 PHP 或 MySQL 中是不存在的。或者我不知道。

    您的问题有两种解决方案:

    解决方案一:

    正如 AlanChavez 所说,您可以使用此请求:

    CREATE TABLE IF NOT EXIST ....
    

    但是,如果你必须创建 1000000000 表(这是一个例子),它不会被优化。

    解决方案 2:

    您可以创建一个包含单行的表格,其中存储了您的表格使用的姓氏。 不知道是不是真的优化了,但我觉得是可以的。

    【讨论】:

      【解决方案4】:

      我绝不建议只用数字命名数据库表。要跟踪点击次数/页面加载次数,您可以使用文件、会话或其他表格。

      【讨论】:

      • 你可以通过这个查询得到最大的表:*SELECT MAX(TABLE_NAME)+1 FROM information_schema.TABLES T WHERE TABLE_SCHEMA = 'YOUR_DB_NAME'*然后添加另一个表。
      猜你喜欢
      • 1970-01-01
      • 2014-06-11
      • 2014-12-08
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多