2016-01-20 122 views
1

在Access中有一个简单的表格布局:将数据插入到表关系

enter image description here

而且我希望将数据添加到t_Bild。 所以我创建了查询:

INSERT INTO t_Bild (B_ID, M_ID, Dateiname, Datum) 
VALUES (11, 8, "someName.png", DATE()); 

它的工作原理。但我需要动态获取B_ID的最大值,以便查询自动插入一个新的私钥。 所以我已经修改了查询:

INSERT INTO t_Bild (B_ID, M_ID, Dateiname, Datum) 
VALUES ((SELECT 1+ MAX(B_ID) FROM t_Bild), 8, "someName.png", DATE()); 

但问题是,每次我运行没有数据插入查询。我也没有收到任何错误消息。 我有查询查询:

SELECT 1+ MAX(B_ID) FROM t_Bild; 

它工作正常。

如何使用有效的私钥实现向t_Bild添加数据?

注意:我无法将私钥设置为自动编号,因为我在建模数据库时忘记设置私钥。现在Access不允许我将私钥设置为自动编号。

回答

2

您可以使用INSERT INTO ...选择的变体:

INSERT INTO t_Bild (B_ID, M_ID, Dateiname, Datum) 
    SELECT 1+ MAX(B_ID), 8, "someName.png", DATE() 
    FROM t_Bild GROUP BY 2,3,4 
+0

工作正常!但为什么GROUP BY 2,3,4? – jublikon

+1

如果没有“分组依据”,则不能计算“最大值”等合计值,2,3,4是另一种编写方式:按M_ID,Dateiname,Datum分组。 你可以参考这个问题更多:http://stackoverflow.com/questions/7392730/what-does-sql-clause-group-by-1-mean –