æå
¥ä¸æ¡è®°å½æ¶,æ们å¾å¤æ¶åé½æ³é©¬å½åæå
¥ç主é®è¿ååºæ¥.ä½ä¸ºå¦ä¸ä¸ªæä½çæ¡ä»¶.å¦æ主é®æ¯
èªå¨çæç(大å¤æ°æ¶åæ¯è¿æ ·),é£ä¹åå主é®æ¯ä¸ç§æ¯è¾å°é¾çäº.å¯è½å¯¹äºä¸äºç¹æ®çæ°æ®åºå¿
é¡»æ
insert intoåselect max(key)æä»ä¹åºåå½åå¼ä½ä¸ºä¸ä¸ªäºå¡çååæ¥æä½,ä½å¾å¤æ°æ®åº(以åæ°æ®åºæä½ç¯å¢)
并ä¸è½ä¸ºä½ æä¾äºå¡å¹¶åæ§å¶.æ以å¦æå¤äººåæ¶æä½,é£ä¹select max(key)å¾å¯è½å°±ä¸æ¯ä½ åæinsertç
é£æ¡è®°å½.
å¨JDBC3.0ä¸,å·²ç»å¯ä»¥ç´æ¥è¿åinsert è¯å¥ç主KEYåå
¶å®å¼,ä½ç®ååªæmysqlæ¯æ.oraclåsqlserver
çJDBCé½ä¸æ¯æè¿ä¸ªç¹æ§.èä¸å¦æ离å¼JAVAå¹³å°å°±æ²¡æè¿ä¸ªç¹æ§äº.
详ç»è¯»äºoacle,sqlserver,mysqlçææ¡£,对ä¸é¢ä¸ç§æ°æ®åºæ¾å°äºä»¥ä¸è§£å³æ¹æ¡,å¨javaåéjavaå¹³å°é½éç¨:
SQLServer:
INSERT INTO tableName (fieldList ...) values (valueList ...) SELECT @@IDENTITY AS aliasName;
è¿ä¸å¥ç¸å½äºæ§è¡æ¥è¯¢æä½,ä»ç»æéä¸getXXX(aliasName);å°±å¯ä»¥è·å.
Oracle:
INSERT INTO tableName (fieldList ...) values (valueList ...) RETURNING [primaryKey INTO]:aliasName;
åä¸çæ¹æ³å¯ä»¥è·å.è¿ä¸¤ç§æ¹æ³é½æ¯æ°æ®åºæ¯æçsqlè¯å¥,åä»¥æ ¹æ¬ä¸åå¨å¹¶åå²çª.
mysql:
没ææ¾å°å¯ä»¥ç»å¯¹ä¿è¯ååæ§çè¯å¥(è°ç¥éåé¦ä¸ä¸)
å¦ææ¯å¨JAVAå¹³å°,å¯ä»¥ç´æ¥å©ç¨ Statementçè¿åé®ç¹æ§.æ¯è¾å®å
¨,å¨éjavaå¹³å°ä¸,ç®ååªè½éè¿å¨åä¸ä¼è¯ä¸ç¨
LAST_INSERT_ID([columnName])æ¥è·å,注æä¸å®è¦å¨åä¸ä¼è¯ä¸.
温馨提示:答案为网友推荐,仅供参考