folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder SQL'de Birincil Anahtar (Primary Key) Ve Otomatik Artan (Auto Increment) Sütun İçin INSERT Nasıl Yapılır



SQL'de Birincil Anahtar (Primary Key) Ve Otomatik Artan (Auto Increment) Sütun İçin INSERT Nasıl Yapılır

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Şimdi arkadaşlar bir tane tablom var ve kayıtlar şu şekilde.

    eskitablo
    6 ----
    7 ----
    1004 ---3000 ---

    şekilnde id değerli kayıtlar mevcut.

    bu kayıtları yenitabloda pk, ai alana nasıl insert ederek ekleme yapabilirim. Mesela en son eklenen kayıt diyelim ki 9000 diyelim. yeni bir kayıt eklenince 9001'den başlasın istiyorum.

    Yardımlarınız için teşekkürler.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hunter
    j4x
    j4x's avatar
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    ya columnlari belirtirsin

    INSERT INTO tablo (column2, column3) VALUES(val1, val2)

    gibi yada autoincrement olan columna NULL eklersin. Bazı SQL implementationlarda 0 yazınca da sıradaki sayıyı koyuyor.

    Eğer belli bir sayıyı vermek istiyorsan override edebiliyorsun normal ekleyip auto_increment alanı. Ayrıca sıradaki sayıyı kendin de belirleyebilirsin.

    j4x tarafından 22/Tem/15 14:03 tarihinde düzenlenmiştir

    The king is bleeding.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DrKill
    DrKill's avatar
    Kayıt Tarihi: 10/Mart/2004
    Erkek

    Şimdi eski bir tablon var ve yeni bir tabloya mı aktarmak istiyorsun?

    Yeni tabloya ilk kayıtı

    insert into yenitablo values ( 9000, değer1, değer2, değer3) from eskitablo

     

    daha sonrakileri

    values (NULL, değer1, değer2, değer3) from eskitablo

     

    diye ekle

     

    DrKill tarafından 22/Tem/15 14:08 tarihinde düzenlenmiştir

    Bu imzayı her gördüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı sömürmektir
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Şöyle özetleyeyim,

    eski tablodaki id sütunu money tipinde. Ben bunu yeni tabloya aktarıcam fakat money tipindeki değerlerin hepsi yenitablodaki pk ve ai özelliğine sahip alana geçmeli

    Eski tablo

    NewsId (money)

    Yeni tablo

    haberID (INT PRIMARY KEY NOT NULL IDENTITY(1,1))

    Umarım anlatabilmişimdir.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    e_yigit
    e_yigit's avatar
    Kayıt Tarihi: 17/Nisan/2007
    Erkek

    Eğer en son eklenen kaydın id sini farklı bir tablo da eklemek istersen ki yeni tablomda demişsin be öyle anladım, aşağıdaki LAST_INSERT_ID(); komutunu kullanabilirsin.

    INSERT INTO tabo1 (id,baslik) VALUES (NULL, 'abc');
    eklenen_son_id = LAST_INSERT_ID();

    ve ya 

    INSERT INTO tablo1 (id,baslik) VALUES (NULL'abc');
    INSERT INTO tablo2 (id,tablo1_id,baslik) VALUES (NULL, LAST_INSERT_ID(),'xxx');

    gibi


    Ya Hep Ya Hiç.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Cidden anlatamadım.

    Ardışık olmayan rastgele sayılar düşünün (7, 100, 544, 10003 vs...), bunu otomatik artan ve birincil anahtar değerlerine sahip bir alana nasıl insert edersiniz?

    Umarım bu kez anlatabilmişimdir, uykusuzluk neticesinde kafa durgun.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    renegadealien
    renegadealien's avatar
    Üstün Hizmet Madalyası Savaş Madalyası Başarı Madalyası Üstün Hizmet Madalyası Developer Madalyası
    Kayıt Tarihi: 23/Mart/2003
    Erkek

    Sorgunun başında SET IDENTITY_INSERT ON yaparsın, eklersin, sonra SET IDENTITY_INSERT OFF yaparsın

    Edit : SET IDENTITY_INSERT sadece o sessionda geçerlidir, diğer sessionları etkilemez. eğer 1 sefer yapacaksan Management Studioda Yeni SQL Ac

     

    SET IDENTITY_INSERT ON

    Insert

    Insert 

    bla bla

    SET IDENTITY_INSERT OFF yap bitsin.

     

    Ayrıntılı bilgi için bknz : MSDN SET IDENTITY_INSERT

    renegadealien tarafından 22/Tem/15 14:34 tarihinde düzenlenmiştir

    Sanıyorum kendi atasözümü yaptım, kaynak belirterek kullanabilirsiniz. 10.05.2013 tarihli google arama sonucu : Aradığınız - "herşeyin hayırlısı rampanın bayırlısı" - ile ilgili hiçbir arama sonucu mevcut değil. Not : Söyleyeni belli olduğu için(Ben) atasözü değil, özlüsöz oluyormuş, dolayısı ile kendi özlüsözümü yapmış oldum :)
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    attackatak
    attackatak's avatar
    Kayıt Tarihi: 06/Mayıs/2007
    Erkek

      DECLARE @deger INT
      SET @deger = (SELECT MAX(ID) FROM TABLO_ADI)
      if(@deger IS NULL)
      SET @deger = 0

      DBCC CHECKIDENT (TABLO_ADI, RESEED, @deger)

     

    sonrada insert yap ;)

Toplam Hit: 1164 Toplam Mesaj: 8
sql insert primary key alter table