PHP MYSQL "merging"变量

标签 php mysql sql

是否可以将表 foo 中名为“bob”的变量与表 foo2 中的变量 bob2 合并?

所以他们总是互相匹配。

自从我更新了“bob”。我希望如果该值发生变化,它也会对 bob2 发生变化,反之亦然。

这可能吗?

编辑:

CREATE TABLE IF NOT EXISTS `stats` (
  `ID` int(11) NOT NULL auto_increment,
  `player` varchar(12) default '',
  `rank` varchar(12) default '',
  `winpot` int(20) default '0',
  `gamesplayed` int(11) default '0',
  `tournamentsplayed` int(11) default '0',
  `tournamentswon` int(11) default '0',
  `handsplayed` int(11) default '0',
  `handswon` int(11) default '0',
  `bet` int(11) default '0',
  `checked` int(11) default '0',
  `called` varchar(11) default '0',
  `allin` varchar(11) default '0',
  `fold_pf` varchar(11) default '0',
  `fold_f` varchar(11) default '0',
  `fold_t` varchar(11) default '0',
  `fold_r` int(11) default '0',
  PRIMARY KEY  (`ID`)
  FOREIGN KEY (winpot) REFERENCES brukere(hand)
);

错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOREIGN KEY (winpot) REFERENCES brukere(hand) )' at line 20

我正在尝试获取 winpot 引用以提交表 brukere。

这里有什么问题吗?

编辑2:

create table brukere(
  hand int(20) NOT NULL,
  id int(20) NOT NULL auto_increment,
  PRIMARY KEY (id)
  );

CREATE TABLE IF NOT EXISTS `stats` (
  `ID` int(11) NOT NULL auto_increment,
  `player` varchar(12) default '',
  `rank` varchar(12) default '',
  `winpot` int(20),
  `gamesplayed` int(11) default 0,
  `tournamentsplayed` int(11) default 0,
  `tournamentswon` int(11) default 0,
  `handsplayed` int(11) default 0,
  `handswon` int(11) default 0,
  `bet` int(11) default 0,
  `checked` int(11) default 0,
  `called` varchar(11) default '0',
  `allin` varchar(11) default '0',
  `fold_pf` varchar(11) default '0',
  `fold_f` varchar(11) default '0',
  `fold_t` varchar(11) default '0',
  `fold_r` int(11) default 0,
  PRIMARY KEY  (`ID`),
FOREIGN KEY (winpot) REFERENCES brukere(hand)
);

Schema Creation Failed: Can't create table 'db_2_7249b.stats' (errno: 150): 

(无法上传 trought SQL(仍在调查)。所以张贴在这里。希望你不介意

这里有什么问题吗?

最佳答案

这种关系在 sql 中很常见,但是您通常以不必更新第二个表的方式构建它,即,您在每个表中使用 id 来表示它们的值,并且当更改变量值,您不必更新多个表。

例如:

如果你有一个表 foo

CREATE TABLE foo (
     id integer NOT NULL AUTO_INCREMENT,
     name CHAR(30) NOT NULL,
     PRIMARY KEY (id)
);

和表格栏

CREATE TABLE bar (
     id INTEGER NOT NULL AUTO_INCREMENT,
     foo_id INTEGER NTO NULL,
     name CHAR(30) NOT NULL,
     PRIMARY KEY (id),
     FOREIGN KEY (foo_id) REFERENCES foo(id)
);

这样,当您在表 foo 上将 bob 的名称更改为 john 时,您不必更改表 bar 上的任何内容,因为您引用的是 id 字段而不是名称。

希望对您有所帮助。

关于PHP MYSQL "merging"变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18038342/

相关文章:

javascript - 更改时选择值更新 href 链接值

php - Advanced Rest 客户端中的数据数组响应无效

Phpass - 如何根据数据库中的用户名和密码哈希检查登录用户名和密码

PHP Mysql,如果用户提交空则指定默认值

php - 无法仅向 Hotmail 发送邮件。 (gmail等完美运行)

php - 使用 jquery 将多个复选框的值添加到数据库中的同一行

php - WHERE 子句中的 MySQL RAND() 匹配一小组行

php - 根据主键表的主键获取外键表的行数

sql - 在sql中的select查询中有条件地自动将列值增加1

php - 是否可以从 PHP 网页上的 DLL 调用方法?