J'ai un certain nombre de lignes que je dois insérer dans une table, mais ces insertions sont toujours effectuées par lots. Je veux donc vérifier si une seule ligne du lot existe dans la table, car je sais alors qu'elles ont toutes été insérées.
Ce n'est donc pas un contrôle de clé primaire, mais cela ne devrait pas avoir trop d'importance. Je voudrais seulement vérifier une seule ligne, donc count(*)
n'est probablement pas bon, alors c'est quelque chose comme exists
Je suppose.
Mais comme je suis assez novice en matière de PostgreSQL, je préfère demander aux personnes qui s'y connaissent.
Mon lot contient des lignes avec la structure suivante :
userid | rightid | remaining_count
Donc, si la table contient des lignes avec des données userid
cela signifie qu'ils y sont tous présents.
0 votes
Vous voulez voir si la table contient TOUTES les lignes, ou toutes les lignes de votre lot ?
0 votes
Toutes les lignes de mon lot oui. elles ont toutes le même champ, je vais l'éditer un peu.
0 votes
Veuillez clarifier votre question. Vous voulez ajouter un lot d'enregistrements, tout ou rien ? Le comptage a-t-il quelque chose de spécial ? (BTW un mot réservé, peu pratique comme nom de colonne)
0 votes
J'ai essayé de simplifier un peu la situation actuelle, mais nous nous rapprochons de plus en plus de la mise en œuvre réelle. Une fois que ces lignes sont insérées (il y a un autre champ pour_date), je commence à décrémenter les droits pour l'utilisateur spécifié au fur et à mesure qu'il utilise des droits spécifiques, une fois que les droits deviennent 0, il ne peut plus effectuer ces actions pour cette date. c'est la véritable histoire
1 votes
Il suffit de montrer (la partie pertinente) des définitions de la table, et de dire ce que vous avez l'intention de faire.
0 votes
[userid, righttid, for_date, remainingCount] c'est la vraie table. J'ai l'intention d'insérer dans cette table lorsque l'utilisateur tente d'utiliser un droit. J'aurais pu créer un processus spécifique qui serait responsable de l'insertion quotidienne des lignes, mais je suis en train de vérifier si une autre approche me conviendrait en termes de performances.
0 votes
RemainingCount avec un "C" majuscule ? Je vous conseille de vous en tenir aux minuscules (compte_restant), sinon vous devrez toujours citer cet identifiant : "compte_restant". De plus, il n'existe pas de "postgre". C'est "PostgreSQL" ou "postgres". Enfin, il n'est toujours pas clair si toutes les lignes à insérer à un moment donné partagent l'identificateur même l'identifiant de l'utilisateur.
0 votes
Ah bon. J'ai copié-collé ça de la liste des paramètres dans le code C#, ne vous inquiétez pas Erwin. Je pensais que cela devait être clair, mais pour préciser davantage, le lot contient des lignes qui partagent l'identifiant, c'est pourquoi, vérifier cette seule ligne avec l'identifiant spécifié a du sens avant tout