Php 如何使用InnoDB表类型实现这一点?
我有以下使用MyIsam表类型的代码,因为可以在创建代码中看到注释。如何使用Innodb实现这一点 实际上,一个新的项目id是基于用户生成的,每个用户从1开始。但是,如果更改了表类型,则无法执行此操作。使用INNODB时如何实现这一点Php 如何使用InnoDB表类型实现这一点?,php,mysql,sql,Php,Mysql,Sql,我有以下使用MyIsam表类型的代码,因为可以在创建代码中看到注释。如何使用Innodb实现这一点 实际上,一个新的项目id是基于用户生成的,每个用户从1开始。但是,如果更改了表类型,则无法执行此操作。使用INNODB时如何实现这一点 CREATE TABLE `articles` ( `artcId` INT(10) NOT NULL AUTO_INCREMENT, `artcUserId` INT(10) NOT NULL DEFAULT '0', `artcTitl
CREATE TABLE `articles` (
`artcId` INT(10) NOT NULL AUTO_INCREMENT,
`artcUserId` INT(10) NOT NULL DEFAULT '0',
`artcTitle` VARCHAR(50) NOT NULL DEFAULT 'No title defined',
`arctTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`artcUserId`, `artcId`)// See this part here and see the Image below.
)
COLLATE='utf8_general_ci'
ENGINE=myisam;
您可以使用其他线程中发布的触发器,也可以手动执行 伪代码:
START TRANSACTION; -- needs to be in a transaction
...
SELECT @lastid := MAX(idItem) FROM item WHERE idArticulo = ?;
INSERT INTO item (idArticulo, idItem, texto)
VALUES (?, @lastid+1, ?);
...
COMMIT;
To handle the first-time situation:
MAX(idItem)
-->
IFNULL(MAX(idItem), 1)
你能在table='articles'的位置运行
SHOW TRIGGERS吗?
?duplicate:@Norman嗯,因为解决方案需要一个触发器(如下所示),所以了解表上还有哪些其他触发器很重要。此表上没有其他触发器。