-1

每次年份更改时,我都必须在我的 sqldb 中插入一个新的主键(例如:2012 年我的键是 2012000000,2013 年我的键是 2013000000),我想自动执行

我的方法是像这样向管理面板添加一个脚本

<script type="text/javascript" src="myscript.php"></script>

我想知道的:

  • 如果它是自动增量,我可以向主键插入任意值吗?
  • 如果是这样,它会自动递增而没有问题吗?
  • 我的整体方法是否正确?
4

1 回答 1

0

这是一种不正当的做法。

  1. 为什么你需要插入主键?看看table partitioning,它可能会更优雅地实现您的目标。
  2. 如果您的应用程序级别(类似于year = primary_key / 1000000)暗示了此限制 - 请考虑重新实现它,这是一个巨大的设计缺陷。
  3. 如果我没有得到任何东西,而您仍然确定必须插入 id - 这取决于您的数据库引擎。其中一些允许插入主键,但需要特殊语法。请指定您正在使用的数据库。
  4. 实现定时执行的正确方法是使用cron(如果您的服务器在 *nix 上运行)或任务计划程序(如果它在 Windows 命令下)。这些是用于重复执行的灵活工具。在您的情况下,您只需告诉它myscript.php在每年 01/01 的 00:00:00 运行您的脚本 ( ) - 就可以了。该脚本可能是 php 页面、控制台程序或其他任何东西。
  5. 最后一点,为什么要管它是 javascript?“正确”的方法是使用include.

总而言之,我强烈建议重新考虑它。上次你最终采用的方法非常违反直觉和明显,而且有问题(想象一下,如果在添加新年的时候没有人登录到管理后端会怎样:))

于 2012-04-12T14:05:25.703 回答