//新问题
更新到这个问题:
提出这个问题的原因
我想在导航栏中创建一个按钮,其值是查看事务。 我想为每个客户创建特定的表格,以便轻松搜索其交易。
至于你的评论,我有一个想法,我将为所有客户创建1个表,使用$ _SESSION保存并知道谁订购了什么。为了让当前用户查看他的交易记录,我还将使用$ _SESSION来查看他的所有交易。问题是我不知道该怎么做。
//旧问题
我正在创建一个在线订购系统,如果客户订购它会将记录保存到mysql数据库。如果客户是新的,它没有特定于他的表,那么系统应该创建表并将数据插入表中。但如果客户是老客户并且已经有一个特定于他的表,系统就不必创建表,它只会在其中插入记录。示例:
目前登录客户是$ _SESSION的约翰基地,他是新客户。 john order,但因为他是新客户,系统应该为john创建一个表并在表中插入记录。
然后下次john命令,系统不应该再创建表了,只需在john表中插入记录
你可以帮助我这样做:)答案 0 :(得分:1)
在MySQL中,您可以使用IF NOT EXISTS
CREATE TABLE IF NOT EXISTS your_table_name ...;
INSERT INTO your_table_name ...
使用SQL Server:
IF OBJECT_ID('your_table_name', 'U') IS NULL
CREATE TABLE your_table_name ...;
INSERT INTO your_table_name ...;
警告:强>
为每个用户创建表是不好的做法。重新思考你的方法并制作一张桌子。
来自The Curse and Blessings of Dynamic SQL:
CREATE TABLE @tbl
这里的愿望是创建一个名称已确定的表 在运行时。
如果我们只是查看反对在存储中使用动态SQL的参数 程序,其中很少有真正适用于此。如果存储 procedure中有一个静态的CREATE TABLE,运行该用户的用户 procedure必须具有创建表的权限,因此动态SQL会 没有改变什么。计划缓存显然与它无关。 等
尽管如此:为什么?你为什么想做这个? 如果你正在创作 你的应用程序中的表格,你已经错过了一些 关于数据库设计的基础知识。在关系数据库中,集合 表和列应该是不变的。它们可能会改变 安装新版本,但不能在运行时安装。
答案 1 :(得分:1)