Forum

Sql tablodaki kolon...
 
Bildirimler
Hepsini Temizle

Sql tablodaki kolona aynı değerin girilmemesini sağlamak

21 Yazılar
3 Üyeler
0 Likes
4,743 Görüntüleme
(@yunusorhan)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Merhaba,

Oluşturduğum tablodaki kolona girilen bir değerin aynısının bidaha girilmemesini nasıl sağlayabiliriz?

Bunun için  Primary Key i kullanıyorum fakat bu özellik sadece 1 kolona verilebiliyor ben toplamda 3 kolona da aynı özelliği vermek istiyorum, bu nasıl mümkün olabilir?

 
Gönderildi : 08/05/2009 13:08

(@BulentUcar)
Gönderiler: 561
Prominent Member
 

Kolon tipi nedir ? Numerıc, text...


Değerlerin uniq mi olmasını istiyorsun. Eğer numerik ise, desciption- identity tanımı ile de yapabilirsin...


 


 

 
Gönderildi : 08/05/2009 13:22

(@yunusorhan)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Değer numerıc. Bu kolona girilen bir değerin birdaha girilmemesini, eğer girilirse hata vermesini istiyorum istiyorum.

Bahsettiğiniz tanımı nereden yapabilirim biraz daha açabilirmisiniz? (sql 2000)

 
Gönderildi : 08/05/2009 13:41

(@BulentUcar)
Gönderiler: 561
Prominent Member
 

Sql'de yer alan databesin table'ı gördüğünde, sağ taraftaraki table sağ tuş yap ve design table de. Buradaki istediğin sütunun datatype'na bas. En aşağıda identity göreceksin bu aktif olur; eğer nümerik ise. Bunu yes Not for replication yapabilirsin. Fakat database boş iken yap, silebilir...

 
Gönderildi : 08/05/2009 13:50

(@yunusorhan)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Bu kolonda müşteri kart kodlarını tutuyoruz ve sayılardan oluşuyor.Ama excel e attığımızda sayıların başına tırnak işareti atıyor, bu sayıların farklı biçimde olduğunu mu gösterir?

Söylediğiniz gibi yaptım fakat datatype'de ( identity ) yok. Şu anda seçili olan varchar.

 
Gönderildi : 08/05/2009 14:06

(@BulentUcar)
Gönderiler: 561
Prominent Member
 

Varchar da olmaz hocam, numerik olması lazım. Yazı mı içeriyor sayı mı o konuda bir anlaşalım...


Sayı içeriyorsa varchar yerine bigint de kullanabilirsin. Dediğim gibi database boşken...

 
Gönderildi : 08/05/2009 14:10

(@sinankahraman)
Gönderiler: 5225
Illustrious Member
 

Kolonların üçünüde seçerek aynı anda Primary Key yapabilirisiniz ama bu sizin işinizi çözmez.

 create table Benzersiz
(
BenzersizID varchar(50) unique not null,
KisiID varchar(50) unique not null,
Adi varchar(50) ,
Soyadi varchar(50)
)

Bu şekilde oluşturacağınız bir Query ile istediğinizi gerçekleştirebilirisiniz.Bu query ne işe yarar :

 create table Benzersiz  - Benzersiz isminde bir tablo oluşturuyoruz
(
BenzersizID varchar(50) unique not null,  - BenzersizID isminde bir atama yapıyoruz ve hem benzersiz hemde boş geçilememe özelliği veriyoruz ve max uzunluğunu belirliyoruz

KisiID varchar(50) unique not null, - Kişi ID isminde bir atama yapıyoruz ve hem benzersiz hemde boş geçilememe özelliği veriyoruz ve max uzunluğunu belirliyoruz
Adi varchar(50) , Adi isminde bir atama yapıyoruz ve max uzunluğunu belirliyoruz
Soyadi varchar(50)  Soyadi isminde bir atama yapıyoruz ve max uzunluğunu belirliyoruz
)

 Bu Query yi çalıştırdığımızda tablomuzun oluştuğunu göreceksiniz.

[img] [/img]

[img] [/img]

[img] [/img]

 

 

 

 
Gönderildi : 08/05/2009 14:25

(@yunusorhan)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

O kolonda sayı içeriyor fakat kullandığımız ara program onu yazıya çeviriyor olabilir çünkü sayıların başına tırnak atıyor. Databaseyi boşaltıp söylediğiniz gibi yaptım fakat bukez de eski databasedeki verileri geri alamıyoruz

 
Gönderildi : 08/05/2009 14:28

(@BulentUcar)
Gönderiler: 561
Prominent Member
 

Sütunlar arasında bağlantı sorunu var bence. Biri text sanki diğer sayı gibi...


Nereden veri alıyorsunuz ? Excel ise onun hücre tipi de sayı mı ?

 
Gönderildi : 08/05/2009 14:32

(@yunusorhan)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Önce excel e export yaptım, tablodaki tüm verileri sildim ve söylediğiniz gibi datatype yi bigint yaptım. Sonra import yapmaya çalıştım pakat hata verdi. Excel dosyasını açtım bahsettiğimiz kolondaki sayıların başında tırnak işareti var ve sanırım bu tırnak işareti verilerin numeric olmasını engelliyor. Ayrıca tırnak işaretini kaldırıp sayı olarak import etmemiz programımızda sorunlara yol açacağını düşünüyorum. Önceki haliyle birşeyler yapamaz mıyız?

 
Gönderildi : 08/05/2009 14:47

(@BulentUcar)
Gönderiler: 561
Prominent Member
 

Excel'de veri içeren hücrede F2 ye basıp yani hücreye odaklanıp tırnağı silersen ve o hücre tipi de sayı olursa bir sorun olacağını düşünmüyorum...


Eski yöntemde biraz zor gibi...


 


 

 
Gönderildi : 08/05/2009 15:01

(@yunusorhan)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Bahsettiğiniz şekilde 27000 in üzerinde satır var ve bunlardan o tırnakları silmek imkansız gibi.

 
Gönderildi : 08/05/2009 15:08

(@BulentUcar)
Gönderiler: 561
Prominent Member
 

Deneme olarak ilk 10 satırı yapsan nasıl olur...


Eğer çözüm olursa, makro ile diğer satırları hallederiz.

 
Gönderildi : 08/05/2009 15:12

(@yunusorhan)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Sn. Sinan KAHRAMAN hocam sanırım yöntem sql 2000 de olmuyor.

 
Gönderildi : 08/05/2009 15:15

(@sinankahraman)
Gönderiler: 5225
Illustrious Member
 

Olmuyor olasılığı sıfır. Siz bu query nin hangi db ye ekleneceğini seçmemiş olabilirsiniz. İsterseniz Az önceki kodların başına use COZUMPAR yani use DB adı yazarak denermisiniz?

[img] [/img]

 
Gönderildi : 08/05/2009 16:11

(@yunusorhan)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

SN. excalibur hocam söylediğiniz şekilde oldu. Artık aynı verileri alırken hata veriyor. Elinizde o tırnakları silebilecek bi makro varmı acaba?

 
Gönderildi : 08/05/2009 16:16

(@yunusorhan)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Excalibur hocam baktım da bizim kullandığımız program yeni veri eklerken hata veriyor. Sanırım sorun kullandığımız ara programda

 
Gönderildi : 08/05/2009 16:25

(@yunusorhan)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Sn. Sinan KAHRAMAN hocam

Söylediğiniz şekilde tobloyu oluşturdum fakat sıralama yaparken sayıya göre küçükten büyüğe değil de  sayının ilk rakamına göre sıralama yapıyor.

Örneğin:

1

10

11

12

1235

1592

190012

2

20

21

... gibi.

 

 
Gönderildi : 10/05/2009 12:31

(@BulentUcar)
Gönderiler: 561
Prominent Member
 

Hocam postu takip edemedim kusura bakmayın. Yukarıda sayı temsil edilmediği için sıralama o şekilde oluyor. Şu anda ne aşamadasın ?

 
Gönderildi : 11/05/2009 20:59

Sayfa 1 / 2
Paylaş: