2012-02-19 10 views
37

क्या किसी तालिका के लिए auto_incrementing BIGINT ID रखना था। यह इतनाएच 2 डेटाबेस में ऑटो वृद्धि आईडी

id bigint auto_increment 

तरह परिभाषित किया जा सकता है, लेकिन है कि कोई प्रभाव नहीं है (यह स्वचालित रूप से बढ़ाने के नहीं है)। मैं सभी फ़ील्ड डालना चाहता हूं लेकिन आईडी फ़ील्ड - आईडी फ़ील्ड डीबीएमएस द्वारा प्रदान की जानी चाहिए। या क्या मुझे आईडी काउंटर बढ़ाने के लिए कुछ कॉल करने की आवश्यकता है?

उत्तर

99

यह मेरे लिए काम करता है। JDBC यूआरएल: jdbc:h2:~/temp/test2

drop table test; 
create table test(id bigint auto_increment, name varchar(255)); 
insert into test(name) values('hello'); 
insert into test(name) values('world'); 
select * from test; 

परिणाम:

ID NAME 
1 hello 
2 world 
+0

धन्यवाद! मैंने सीखा, कि मेरी गलती बनाने में नहीं थी, लेकिन सम्मिलित बयान में। मैंने टेस्ट वैल्यू ('हैलो') में डालने का इस्तेमाल किया; – eriq

+3

मैं अच्छा होगा अगर आप मेरा जवाब +1 करेंगे :-) –

+0

यह -1 था और मैं इसे केवल 0 तक बढ़ा सकता था, जो मैंने किया था। हो सकता है कि मैं इसे ऊपर उठाने के लिए अंक खो रहा हूं। – eriq

-7
id bigint(size) zerofill not null auto_increment, 
+2

'zerofill' एच 2 डेटाबेस द्वारा समर्थित नहीं है। –

3

बहुत ही सरल:

id int auto_increment primary key 

एच 2 अनुक्रम वस्तु पैदा करेगा स्वचालित रूप से

2

तुम भी उपयोग कर सकते हैं default:

create table if not exists my(id int auto_increment primary key,s text); 
insert into my values(default,'foo'); 
संबंधित मुद्दे