刚才我发的那个贴,被莫名关闭了,没有任何违规,不知为何,在这里重发一次:
我有两张表
A表有字段 COLUMN1, A_COLUMN2, A_COLUMN3
B表有字段 COLUMN1, B_COLUMN2, B_COLUMN3
两表只有一个字段COLUMN1是相同的,其它不同。COLUMN1是个ID值,是唯一值,是自动递增的。
当我对A表插入或删除新记录,想让B表同时根据COLUMN1更改记录。
1. 如果是A表插入一行记录,B表同时插入相同的COLUMN1值,而B_COLUMN2, B_COLUMN3则为空,可供我手动更改。
2. 如果A表删除一行记录,则B表同时删除相同的COLUMN1值对应的此行记录
3. 如果A表更改A_COLUMN2, A_COLUMN3这些字段的值,则B表不受任何影响
4. 如果A表更改COLUMN1的值,则B表对应的相同COLUMN1也随之更改(这点无法做到就不要了)
5. 只有对A表做改动才会影响B表。至于对B表做任何改动,不会影响到A表。
由于SQL水平有限,还望详细指教,谢谢
我在PHPMYADMIN运行了如上代码,可是提示以下错误:
check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5
可否再帮看一下呢?
我用Navicat试过了,可以啊。最好找个mysql帮助手册,自己研究研究哈。
脚本:
CREATE TABLE `a` (
`COLUMN1` int(11) NOT NULL AUTO_INCREMENT,
`A_1` text,
`A_2` text,
PRIMARY KEY (`COLUMN1`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for `b`
-- ----------------------------
DROP TABLE IF EXISTS `b`;
CREATE TABLE `b` (
`COLUMN1` int(11) NOT NULL DEFAULT '0',
`B_1` text,
`B_2` text,
PRIMARY KEY (`COLUMN1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TRIGGER IF EXISTS `trigger4InsertA`;
DELIMITER ;;
CREATE TRIGGER `trigger4InsertA` AFTER INSERT ON `a` FOR EACH ROW BEGIN
INSERT INTO B VALUES(LAST_INSERT_ID(),'','');
END
;;
DELIMITER ;