如何使用MySQL用户定义的变量将多个行插入表中?

时间:2012-03-25 22:07:28

标签: mysql

我有一个“情节”表,它会为网格上的每个情节保留一行

即。 3 x 3网格= 9个图

行编号并且列有字母(并且每26个字母获得一个额外的字母,即AA,BB,CC ......,AAA等),因此上面的示例需要插入以下行:

图1A,1B,1C 图2A,2B,2C 图3A,3B,3C

使用MySQL用户定义的变量,是否可以运行单个查询,根据上面列出的详细信息,在我的绘图表中插入所需的图数?

这是起始SQL:

    CREATE TABLE `Grids` (
      `Grid_ID` int(11) NOT NULL AUTO_INCREMENT,
      `Instance_ID` int(11) NOT NULL DEFAULT 0,
      `CreateDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      `UpdateDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      `Columns` int(11) NOT NULL DEFAULT 0,
      `Rows` int(11) NOT NULL DEFAULT 0,
      PRIMARY KEY (`Grid_ID`),
      CONSTRAINT `Grids_ibfk_1` FOREIGN KEY (`Instance_ID`) REFERENCES `Instances` (`Instance_ID`) ON DELETE NO ACTION ON UPDATE CASCADE
    ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;

    INSERT INTO `Grids` VALUES (NULL,1,NOW(),NOW(),30,50);

    CREATE TABLE `Plots` (
      `Plot_ID` int(11) NOT NULL AUTO_INCREMENT,
      `Grid_ID` int(11) NOT NULL DEFAULT 0,
      `Instance_ID` int(11) NOT NULL DEFAULT 0,
      `Session_ID` char(32) DEFAULT NULL,
      `User_ID` int(11) DEFAULT NULL,
      `Transaction_ID` int(11) DEFAULT NULL,
      `CreateDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      `UpdateDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      `Plot` varchar(10) NOT NULL DEFAULT 0,
      `ReserveDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      `ReservationTimeoutDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      `PurchaseDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      PRIMARY KEY (`Plot_ID`),
      CONSTRAINT `Plots_ibfk_1` FOREIGN KEY (`Grid_ID`) REFERENCES `Grids` (`Grid_ID`) ON DELETE NO ACTION ON UPDATE CASCADE,
      CONSTRAINT `Plots_ibfk_2` FOREIGN KEY (`Instance_ID`) REFERENCES `Instances` (`Instance_ID`) ON DELETE NO ACTION ON UPDATE CASCADE,
      CONSTRAINT `Plots_ibfk_3` FOREIGN KEY (`Session_ID`) REFERENCES `Sessions` (`Session_ID`) ON DELETE SET NULL ON UPDATE CASCADE,
      CONSTRAINT `Plots_ibfk_4` FOREIGN KEY (`User_ID`) REFERENCES `Users` (`User_ID`) ON DELETE NO ACTION ON UPDATE CASCADE,
      CONSTRAINT `Plots_ibfk_5` FOREIGN KEY (`Transaction_ID`) REFERENCES `Transactions` (`Transaction_ID`) ON DELETE NO ACTION ON UPDATE CASCADE
    ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;

我很确定可以使用CHAR()和递增,但我不确定如何将它拉下来。

0 个答案:

没有答案