J'ai une table qui ressemble à ceci.
CREATE TABLE tshirt ( id serial, sku character varying(255) NOT NULL );
5 Réponses :
Indiquez à la base de données Supprimer du tshirt où Sku = 'sku_you_like_to_match' et Serial = '555'; p>
Pas le meilleur moyen, mais vous pouvez le faire:
DELETE FROM tshirt WHERE id IN ( SELECT id FROM tshirt WHERE sku='%s' LIMIT 1 )
Pas le meilleur moyen? Je vous propose un prix de sous-estimation de l'année. Lequel pensez-vous que cela supprimerait, ou est-ce non pertinent?
Selon sa question, il ne soutient pas vraiment quel enregistrement est supprimé, il doit supprimer un seul
Ceci est i> la meilleure façon de réaliser ce qu'il veut - supprimer une rangée, peu importe qui. Une simple requête qui fait le travail. Bien sûr, sa santé mentale est toujours en question.
BTW, vous voudrez peut-être utiliser ctid code> ou OID code> s'il n'y a pas de clé unique ID code>.
Eh bien oui, mais la meilleure façon de vous tirer dessus dans le pied est d'appuyer sur le pistolet contre elle et de tirer la gâchette. Cela ne veut pas dire que c'est une bonne idée.
C'est faux, j'ai essayé cette requête et elle a supprimé 2 rangées. Voici ce que j'ai essayé de supprimer de Public.Test où "ID" dans (Sélectionnez "ID" de Public.Test où "ID" = 1 limite 1)
Ceci supprime tous sauf un em> (qui a plus de sens pour moi que de supprimer exactement em> un) BTW: pour éviter cela Type de problème à l'avenir, vous devez ajouter quelques contraintes à la définition de la table: p>
Vous pouvez tirer parti de la colonne CTID implicite trouvée dans chaque table. TIME: 0.267 MS P> P>
Cet exemple de SQL Server Supprimer le Top supprimerait le premier enregistrement de la table des employés où le last_name est "Anderson". S'il y a d'autres enregistrements dans la table des employés disposant d'un nom de "Anderson", ils ne seront pas supprimés par la déclaration supérieure Supprimer.
DELETE TOP(1) FROM employees WHERE last_name = 'Anderson';
Hein? Supprimer par ID. Si vous ne le savez pas, alors comment pouvez-vous savoir lequel doit être supprimé.
Comment savez-vous quel ciel vous voulez garder
Cela ne comporte pas quelle ligne est supprimée. Si je, il y a deux rangées correspondantes, je dois juste supprimer un, peu importe la fonction.
Et s'il y a 3, ou 6789. Il serait peut-être préférable de mettre une contrainte unique sur SKU. L'expérience suggère que cela va être important à un moment donné à l'avenir et, à ce stade, vous allez vous appeler des noms, ce qui n'inclut pas le génie, intelligent, perspicace, etc.
@Tonyhopkinson Cela ne grandira pas beaucoup, je crois que 50Rows va être le maximum de cette table.